> rvm list
rvm rubies
=* ruby-1.9.2-p290 [ i686 ]
ruby-1.9.3-p194 [ i686 ]
> rails -v
Rails 3.1.1
relacionada, pero no se contestaron: Is there a Rails Console command (Rails 3+) to reload changed code?¿cómo recargo un modelo en la consola de rieles?
estoy usando los rieles de la consola para tratar de averiguar por qué un método en mi modelo no está siendo llamado. El modelo está en ./app/models/product.rb. Estoy cambiando un método para que no se llame como self.trim_history
a trim_history
. Todavía me estoy volviendo loco cuando llamar a un método como self.do_stuff
o simplemente do_stuff
.
Bueno, en el curso de resolver esto me he encontrado con un problema con reload!
. Según entendí, reload!
cargaría todos los modelos y controladores nuevamente, pero eso no parece funcionar. Cuando depuro mi código, la línea que he cambiado para ser do_stuff
todavía se muestra como self.do_stuff
en el depurador.
He intentado resolver esto con reload!
, no hay solución. He vuelto a cargar el objeto de la base de datos después de volver a cargar, sin solución. He cargado el modelo directamente con load './app/models/product.rb'
, luego he cargado el objeto desde el archivo db, no hay solución. He verificado que el objeto se está cambiando con tail
.
¿Cuál es la mejor manera de volver a cargar un modelo en la consola de rieles? ¿Debo reiniciar la consola cada vez que cambia mi código de modelo? ¿Hay alguna forma de simplemente volcar todos los modelos existentes y su código sin volver a cargar la consola?
Editar: esto se extrañó. Ahora sospecho que mi código está siendo recargado pero el depurador no refleja el nuevo código. Cuando paso por el código, el código anterior está allí, pero el nuevo código se está ejecutando. Probé esto agregando un raise
- el raise
nunca aparece en el depurador, pero se muestra. Wat?
¿Hay algo que tenga que hacer con el depurador para que vea el código recargado? Esto parece un error ...
¿Está tratando de llamar al método en la clase o una instancia de la clase? –
@ChrisSchmitz instancia de la clase; Estoy leyendo acerca de usarme y jugar con el código hasta que lo entiendo. – jcollum
Hay varios depuradores diferentes para Ruby, sería útil especificar cuál está usando. –