Рельсы консоли: перезагрузка! не отражает изменения в файлах модели? Какая может быть возможная причина?


раньше он работал нормально. Я играл немного конфиг. Так что, возможно, я изменил некоторые конфигурации неосознанно.

вот конфигурация среды / разработки.РБ

  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'

вот конфигурационный раздел Приложения.РБ

 # 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

когда я запускаю перезагрузку! на консоли rails он возвращает true

2 89

2 ответа:

reload! только перезагрузка последний код в среде консоли. Он не выполняет повторную инициализацию существующих объектов.

это означает, что если вы уже создали экземпляр каких - либо объектов, их атрибуты не будут обновлены, включая вновь введенные проверки. Однако при создании нового объекта его атрибуты (а также проверки) будут отражать загруженный код. здесь

вы перезагружаете объект из базы данных?

например:

>> a = User.last
=> #<User id: 16, email: "asdfadsf@sdfdsf.com">
>> reload!
Reloading...
=> true

'a' не будет отражать никаких изменений в вашей модели, пока вы не перезагрузите его из БД.