为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
答案 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"