Consola de Rails: cargar! no refleja los cambios en los archivos de modelo? Lo que podría ser posible razón?

Antes se estaba trabajando bien. He estado jugando poco config. Así que puede ser que han cambiado algunas config sin saberlo.

aquí es config de medio ambiente/desarrollo.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í es la sección de configuración de la aplicación.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 ejecuto cargar! en la consola de rails es devolver true

InformationsquelleAutor Maddy.Shik | 2011-03-25

2 Kommentare

  1. 166

    reload! solo vuelve a cargar el último código en el entorno de la consola. No re-inicializar los objetos existentes.

    Esto significa que si usted ya ha instanciado objetos, sus atributos no sería actualizado – incluidos los recién introducidos en las validaciones. Sin embargo, si crea un nuevo objeto, sus atributos (y también las validaciones) reflejará el reloaded código.
    más aquí

    • ¿Qué acerca de la validación personalizada? He definido algunos métodos y registrado con validar. Cuando cambio la lógica de validación, no se refleja en cargar!.
    • Se refleja cuando se re-inicializar el objeto.
  2. 17

    Se le recarga el objeto de la base de datos?

    Por ejemplo:

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

    ‘a’ no reflejar cualquier cambio en su modelo hasta que vuelva a cargar de la base de datos.

    • Nota – esto es cierto incluso cuando el acceso a un método en un objeto. Por ejemplo, si cambia la definición de la clase método foo(), luego en la consola.foo no va a utilizar la nueva definición, a menos que primero cargar un.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea