web-dev-qa-db-ja.com

Rails Console:reload!モデルファイルの変更を反映していませんか?考えられる理由は何ですか?

以前はうまく機能していました。私は少し設定をしてきました。だから私は無意識のうちにいくつかの設定を変更した可能性があります。

ここに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の設定セクション

 # 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 trueを返します

91
Maddy.Shik

reload!は、コンソール環境で最新のコードのみを再ロードします。既存のオブジェクトを再初期化しません。

これは、オブジェクトを既にインスタンス化した場合、その属性は更新されないことを意味します-新しく導入された検証を含みます。ただし、新しいオブジェクトを作成すると、その属性(および検証)にはリロードされたコードが反映されます。 詳細はこちら

165
Nazar Hussain

データベースからオブジェクトをリロードしていますか?

例えば:

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

'a'は、dbからモデルをリロードするまで、モデルへの変更を反映しません。

17
ctide