1

我的库中有一个 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类变量初始化有关

4

1 回答 1

0

使用宝石存储设置可能会更好吗?像https://github.com/railsjedi/rails_config

于 2013-01-23T13:43:18.460 回答