自定义导轨配置部分

hac*_*sid 15 ruby ruby-on-rails

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

Rails.configuration.foo.bar
Rails.configuration.foo.baz
Run Code Online (Sandbox Code Playgroud)

例如

Rails.configuration.stackoverflow.api_key
Rails.configuration.stackoverflow.api_secret
Run Code Online (Sandbox Code Playgroud)

我会将stackoverflow配置存储在某个.rb文件(config/initializers?)中,我显然会有其他类似命名空间的内容 Rails.configuration

kik*_*kik 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
Run Code Online (Sandbox Code Playgroud)

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

Rails.configuration.foo.bar
Run Code Online (Sandbox Code Playgroud)

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