自定义导轨配置部分

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

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

例如

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

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

您正在寻找的是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使用它。

在Rails 4中使用自定义配置更好。

 $ 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"