web-dev-qa-db-fra.com

Rails Console: rechargez! Ne reflétant pas les modifications apportées aux fichiers de modèle? Quelle peut être la raison?

Auparavant, cela fonctionnait bien. Je joue à peu config. Alors peut-être que j’ai changé de configuration sans le savoir.

voici la configuration de environment/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'

Voici la section de configuration 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

quand je lance reload! on Rails la console retourne vrai

91
Maddy.Shik

reload! ne recharge que le dernier code dans l'environnement de la console. Il ne réinitialise pas les objets existants.

Cela signifie que si vous avez déjà instancié des objets, leurs attributs ne seront pas mis à jour, y compris les nouvelles validations introduites. Toutefois, si vous créez un nouvel objet, ses attributs (ainsi que ses validations) refléteront le code rechargé. plus ici

165
Nazar Hussain

Rechargez-vous l'objet à partir de la base de données?

Par exemple:

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

"a" ne reflétera pas les modifications apportées à votre modèle tant que vous ne l'avez pas rechargé depuis la base de données.

17
ctide