2010-08-05 13 views
6

¿Hay alguna forma de volver a cargar todas las gemas en una aplicación de Rails sin reiniciar completamente el servidor? Tengo un Gemfile que usa :path para hacer referencia a una dependencia que estoy desarrollando en el mismo sistema, y ​​es molesto tener que matar la aplicación y hacer rails -s nuevamente cada vez que guardo un cambio. También sería bueno en la producción poder actualizar una joya sin matar al servidor por unos segundos. ¿Pensamientos?¿Cómo volver a cargar todas las gemas en Rails 3?

+0

¿Fue esto resuelto? – Tom

+0

No, nunca obtuve una buena respuesta. –

Respuesta

6

Recientemente descubrí que me gustaría hacer lo mismo que usted dice, por lo que puedo desarrollar gemas junto con mis proyectos.

En un Gemfile no he incluido la dependencia gema, sino que he añadido en config/ambientes/development.rb

ActiveSupport::Dependencies.autoload_paths << "/path_to_gem_dir/gem_name/lib" 

Se me obliga a hacer un trabajo adicional por lo que es de sincronización, pero en la mayoría de los casos comunes está bien. Cuando termino de trabajar en una gema, puedo eliminar la autocarga y usar la dependencia de gema en Gemfile.

Recuerde que la dependencia de la gema se puede colocar en : producción,: pruebe grupos, por lo que en el desarrollo lo tiene limpio.

Por ejemplo

group :development do 
    # gem "wirble" COMMENTED!, so I can autoload files! 
end 

group :production do 
    gem "wirble" 
end 

de codificación feliz!

+0

¡Gracias por el consejo! Añadiría que si la gema en la que está trabajando tiene dependencias adicionales (en gemspec), debe agregarlas al grupo de desarrollo de su gemfile o de lo contrario no se cargarán. –

+0

Sí, solo puedes agregar fuentes allí. Todavía no logré encontrar una forma totalmente automática para hacer esto, pero por ahora parece ser la más cercana :) – m4risU

Cuestiones relacionadas