Rails控制台:重新加载! 没有反映模型文件的变化? 有什么可能的原因?

此前它工作正常。 我一直在玩一点点configuration。 所以可能是我在不知不觉中改变了一些configuration。

这里是environment / development.rb的configuration

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的configuration部分

  # 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 

当我运行重装! 在轨道控制台它返回true

reload! 只能在控制台环境中重新加载最新的代码。 它不重新初始化现有的对象。

这意味着如果你已经实例化任何对象,它们的属性将不会被更新。 但是,如果您创build一个新对象,则其属性将反映重新加载的代码。 这里更多

你是从数据库重新加载对象?

例如:

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

'a'不会反映你的模型的任何改变,直到你从数据库重新加载它。