2011-03-25 6 views
84

Anteriormente funcionaba bien. He estado jugando a little bit config. Entonces puedo haber cambiado algunas configuraciones sin saberlo.Consola Rails: ¡vuelve a cargar! que no refleja los cambios en los archivos del modelo? ¿Cuál podría ser la razón posible?

aquí es de configuración del entorno/development.rb

config.cache_classes = false 

    # Log error messages when you accidentally call methods on nil. 
    config.whiny_nils = true 

    # Show full error reports and disable caching 
    config.consider_all_requests_local  = true 
    config.action_view.debug_rjs    = true 
    config.action_controller.perform_caching = false 

    # Don't care if the mailer can't send 
    config.action_mailer.raise_delivery_errors = false 

    # Print deprecation notices to the Rails logger 
    config.active_support.deprecation = :log 

    # Only use best-standards-support built into browsers 
    config.action_dispatch.best_standards_support = :builtin 

    # migration prefix with sequence #s 
    config.active_record.timestamped_migrations = false 

    #time zone 
    config.time_zone = 'UTC' 

Aquí está la sección de configuración de application.rb

# Configure the default encoding used in templates for Ruby 1.9. 
config.encoding = "utf-8" 

# Configure sensitive parameters which will be filtered from the log file. 
config.filter_parameters += [:password] 

config.active_record.schema_format = :sql 

cuando corro recarga! en los carriles consola devuélvalo cierto

Respuesta

141

reload! sólo se vuelve a cargar el último código en el entorno de consola. No reinicia los objetos existentes.

Esto significa que si ya ha instanciado objetos, sus atributos no se actualizarán. Sin embargo, si crea un objeto nuevo, sus atributos reflejarán el código recargado. more here

+0

¿Qué pasa con la validación personalizada? He definido algunos métodos y registrado con validate. Cuando cambio la lógica de validación, no se refleja en la recarga !. –

+2

Reflejará cuando reinicialice el objeto. –

15

¿Está volviendo a cargar el objeto a partir de la base de datos?

Por ejemplo:

>> a = User.last 
=> #<User id: 16, email: "[email protected]"> 
>> reload! 
Reloading... 
=> true 

'a' no reflejará ningún cambio en su modelo hasta que vuelva a cargar desde el PP.

+1

Nota - esto es cierto incluso cuando se accede a un método en un objeto. Por ejemplo, si cambia la definición del método de clase foo(), entonces en la consola a.foo no usará la nueva definición a menos que primero recargue a. – jpwynn

Cuestiones relacionadas