Recarga la consola rails
En cuanto al uso de la consola Rails, cuando hago algún cambio en un modelo, ¿necesito recargar la consola rails cada vez que hago ese cambio refleja?
Por ejemplo, tengo mi código original de la siguiente manera:
class Article < ActiveRecord::Base
validates :title, :presence => true
validates :body, :presence => true
end
Más tarde, quiero agregar algún atributo adicional como se muestra a continuación.
class Article < ActiveRecord::Base
validates :title, :presence => true
validates :body, :presence => true
def long_title
"#{title} - #{published_at}"
end
end
¿Necesita ejecutar el comando " reload!"cada vez que sea capaz de hacer la llamada al método "long_title"? De lo contrario, obtendré un error diciendo que el atributo no ha sido definido. y por qué ¿tenemos que hacerlo manualmente?
2 answers
Sí, necesita llamar a reload!
ya que esto borrará las constantes cargadas que se han cargado y las cargará a medida que se hace referencia a ellas en la consola.
Si tiene objetos antiguos anteriores a reload!
tendrá que llamar a reload
en estos objetos individuales o buscar nuevos objetos y trabajar con ellos si desea probar el nuevo método.
Como alternativa, realmente recomendaría buscar en un marco de pruebas como RSpec que le brinda pruebas repetibles y una red de seguridad para su aplicación.
Parece que está tratando de usar la consola como una herramienta de prueba para nuevas funcionalidades en su aplicación, que es para lo que RSpec es más adecuado. La consola es muy buena para la experimentación.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-10-20 03:40:19
rails console
does not reload classes after they have been referenced.
Si lo hiciera tendría que hacer una llamada al sistema de archivos para averiguar qué archivos habían cambiado para cada comando.
rails server
por otro lado recargará las clases cambiadas entre solicitudes en modo de desarrollo.
Supongo que está manteniendo la consola abierta debido al tiempo de inicio rails console
. No estoy seguro de cuál es su aplicación, y no estoy seguro de por qué la consola está abierta durante el desarrollo. Sin embargo, si está tratando de verificar los cambios, le recomiendo probar con unit test o rspec
y en ese momento puede usar spork para acelerar el tiempo de inicio.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-05 22:40:24