2011-03-09 34 views
39

He instalado una gema en mi aplicación Rails (idear). Después de instalar la gema, me di cuenta de que no la necesitaba.¿Cómo eliminar la gema de la aplicación Ruby on Rails?

Quiero eliminar la gema, sus dependencias y los archivos que creó en mi aplicación. En otras palabras, quiero restaurar el sistema a lo que solía ser antes de la gema. ¿Cómo puedo hacer esto? (Estoy usando Ruby on Rails 3.)

Respuesta

16

Diseñar usa algunos generadores para generar vistas y cosas que necesita en su aplicación. Si ha ejecutado este generador, puede deshacer fácilmente con

rails destroy <name_of_generator> 

La desinstalación de la gema funciona como se describe en los otros mensajes.

34

Si está utilizando Rails 3, eliminarlo del Gemfile y ejecutar bundle install será suficiente.

Si está utilizando Rails 2, es de esperar que haya puesto la declaración en config/environment.rb. Si es así, eliminándolo de allí y ejecutando gemas de rake: instalar debería hacer el truco.

+0

¿Esto también eliminará los archivos que creó la gema? –

+0

Normalmente no agrega ningún archivo a menos que especifique explícitamente, pero puede modificar algunos de los archivos existentes, como routes.rb. Si desea deshacer esas modificaciones, puede revertir a través del control de origen como dijo @harald. –

+0

¿Esto eliminará todos los generadores también? – JohnMerlino

-2

Está utilizando algún tipo de control de revisión, ¿verdad? Entonces debería ser bastante simple restaurar la confirmación antes de agregar la gema, o revertir la que la agregó si tiene varias revisiones después de la que desea conservar.

+0

Estoy usando git. ¿Hay alguna manera de restaurar mi aplicación con git? –

+0

Sí, busque 'git revert' o 'git reset' dependiendo de su situación, probablemente uno de esos le ayude. – harald

+1

Esto claramente no es la respuesta correcta. Usar git o más en general VCS para eliminar la gema o biblioteca instalada es realmente horrible. Es mejor utilizar 'gem-uninstall ' como sugerido @rtfminc, o simplemente eliminar la dependencia del 'Gemfile' y ejecutar' bundle install' en tu aplicación como se sugirió @ srdjan-pejic. –

1

¿Qué tal algo como:

gem dependency devise --pipe | cut -d \ -f 1 | xargs gem uninstall -a 

(esto supone que no se esté usando bundler - pero supongo que no eres ya que la remoción de su paquete gemspec resolvería el problema)

75

Puede utilizar

gem uninstall <gem-name>

+0

¿Por qué hay tantos votos a favor en este caso? La pregunta es cómo eliminarlo de la aplicación ** RoR **. Y para eso solo necesitas quitarlo de 'Gemfile.rb' y' bundle' nuevamente. Eso es todo. Y para eliminar dependencias, debe eliminar las dependencias y los archivos asociados. – Sachin

+0

Y para las nuevas aplicaciones de Rails, podemos tener la ayuda de 'irb' para guardar su sistema y trabajar en entornos basados ​​en la versión virtual de ruby. – Sachin

3

para los carriles 4 - quitar el nombre de la gema Gemfile y luego ejecutar bundle install en su terminal. También reinicie el servidor después.

Cuestiones relacionadas