1. ホーム
  2. ruby-on-rails

[解決済み] Railsコンソール:リロード!モデルファイルの変更が反映されない?考えられる理由は何でしょうか?

2022-02-16 02:28:55

質問

以前は正常に動作していました。少し設定を弄っていました。そのため、知らず知らずのうちに設定を変更していたのかもしれません。

以下は、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'

application.rbのconfigセクションを以下に示します。

 # 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のコンソールでreload!を実行するとtrueを返します。

どうすればいいですか?

reload! は、コンソール環境の最新のコードを再読み込みするだけです。既存のオブジェクトを再初期化するわけではありません。

つまり、すでにインスタンス化されているオブジェクトの属性は、新しく導入された検証を含め、更新されません。しかし、新しいオブジェクトを作成すると、その属性 (および検証) は再読み込みされたコードを反映します。 詳しくはこちら