自定义导轨配置部分

时间:2013-09-12 15:32:05

标签: ruby-on-rails ruby

为rails应用创建自定义配置部分的最佳方法是什么?理想情况下,我希望最终结果是api调用,如:

Rails.configuration.foo.bar
Rails.configuration.foo.baz

e.g。

Rails.configuration.stackoverflow.api_key
Rails.configuration.stackoverflow.api_secret

我会将stackoverflow配置存储在某个.rb文件(config / initializers?)中,我显然会在Rails.configuration

中有其他类似名称空间的命名空间

2 个答案:

答案 0 :(得分:26)

您要找的是ActiveSupport::OrderedOptions

rails内部用于设置config命名空间。它允许在config/application.rb

中执行类似的操作
module MyApp
  class Application < Rails::Application
    # ...
    config.foo = ActiveSupport::OrderedOptions.new 
    config.foo.bar = :bar
  end
end

然后您可以通常的方式检索它:

Rails.configuration.foo.bar

如果您希望这是特定于环境的,您也可以在config/environments/*.rb而不是config/application.rb中使用它。

答案 1 :(得分:1)

在Rails 4中,使用custom-configuration会更好。

$ Rails.configuration.x.class
# Rails::Application::Configuration::Custom < Object

Rails.application.configure do    
  # custom configuration section
  config.x.foo.bar = "foo.bar"
end

$ Rails.configuration.x.foo.bar
# "boo.bar"