我的库中有一个 ActiveRecord 类设置(自动加载)
class Settings < ActiveRecord::Base
cattr_accessor :defaults
@@defaults = {}.with_indifferent_access
...
我定义了一个初始化程序 'settings.rb' 来设置一些默认值
Settings.defaults[:admin_email] = 'john.doe@acme.com'
#.....
运行控制台时,我应该看到默认值,但它是空的:
# expected Settings.admin_email => 'john.doe@acme.com'
Settings.admin_email => {}
如果我在 settings.rb 中插入调试器语句,那么我可以停下来,甚至执行 Settings.defaults[:admin_email] = 'john.doe@acme.com' 但 Settings.admin_email => {}
然后,如果我在控制台中运行: Settings.defaults[:admin_email] = 'john.doe@acme.com' Settings.admin_email => 'john.doe@acme.com'
似乎执行了初始化程序代码,但没有保留类变量......它是否与Rails 3.2类变量初始化有关