为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 / 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中使用它.