Подтвердить что ты не робот

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

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

здесь находится config 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'

Вот раздел конфигурации приложения .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

когда я запускаю перезагрузку! on rails console it return true

4b9b3361

Ответ 1

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

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

Ответ 2

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

Например:

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

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