ruby-on-rails irb

ruby on rails - Recargar la consola de rieles



ruby-on-rails irb (2)

Con respecto al uso de la consola Rails, cuando hago algún cambio en un modelo, ¿tengo que volver a cargar la consola Rails cada vez que se refleje el cambio?

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 algunos atributos adicionales 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 "recargar!" ¿Cada vez que se puede hacer la llamada al método "long_title"? De lo contrario, obtendré un error que dice que el atributo no se ha definido. y ¿Por qué necesitamos realizar eso manualmente?


Sí, necesitas llamar a reload! ya que esto borrará las constantes cargadas que se han cargado y las cargará a medida que se hace referencia en la consola.

Si tienes objetos antiguos de antes de la reload! deberá 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 ofrece pruebas repetibles y una red de seguridad para su aplicación.

Parece que estás tratando de usar la consola como una herramienta de prueba para nuevas funcionalidades en tu aplicación, que es para lo que RSpec es más adecuado La consola es realmente buena para la experimentación.


rails console no vuelve a cargar las clases después de que hayan sido referenciadas .

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 modificadas entre las solicitudes en el modo de desarrollo.

Supongo que mantendrá la consola abierta debido al tiempo de inicio de la 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á intentando verificar cambios, podría recomendar la prueba con unidad de prueba o rspec y en ese momento puede usar spork para acelerar el tiempo de inicio.