2012-06-15 18 views
5

En application.rb, que tienenRecargar carriles inicializadores

config.autoload_paths += %W(#{config.root}/lib 

Así que cuando modifico una clase en lib, mi código se vuelve a cargar.

Sin embargo, cuando intenté agregar config/initializers a autocarga, noté que mi código no se actualiza.

Si estoy escribiendo una extensión para la clase de cadena, tengo que reiniciar los raíles cada vez que modifico mi código.

¿Desea asesorar?

Respuesta

5

Los inicializadores solo se cargan al iniciar los raíles (y nunca se vuelven a cargar). Cuando juegue en config/initializers, deberá reiniciar los rieles todo el tiempo.

Por supuesto, puede asegurarse de que su código esté definido en /lib para que pueda asegurarse de que funciona, al usar su banco de pruebas.

E.g. en lib/speaker.rb escribir

module Speaker 
    def speak 
    puts "Ahum, listen: #{self.to_s}" 
    end 
end 

y en su inicializador, a continuación, podría hacer algo como

class String 
    include Speaker 
end 

Si bien esto todavía solamente se cargan al iniciar rieles, se puede desarrollar y probar su módulo más fácilmente.

Espero que esto ayude.

+1

¡Muchas gracias! – Abdo

3

Los archivos del inicializador se cargan solo una vez cuando se inicia el servidor de rieles. Reinicie el servidor cuando se modifiquen los valores de los inicializadores. Para obtener más información, consulte los rieles initialization guides.

Auto Recarga 'lib' sobre el cambio

Puede recargar automática archivos lib. Seguir el enlace Autoload and Reload lib directory on change

En la configuración de los raíles Aplicaciones: config.reload_classes_only_on_change habilita o deshabilita la recarga de las clases solo cuando cambian los archivos rastreados. De forma predeterminada, se realiza un seguimiento de todo en las rutas de autocarga y se establece en verdadero. Si config.cache_classes es verdadero, esta opción se ignora.

+0

De esto se trataba mi pregunta; No quería reiniciar el servidor. Quería una mejor manera de depurar mi código. – Abdo

+0

(Acabo de ver el -1; no era yo =)) – Abdo

+0

paukul gracias por la edición –