自定义 rails 配置部分
Posted
技术标签:
【中文标题】自定义 rails 配置部分【英文标题】:Custom rails configuration section 【发布时间】:2013-09-17 02:09:08 【问题描述】:为 Rails 应用程序创建自定义配置部分的最佳方法是什么?理想情况下,我希望最终结果是一个 api 调用,例如:
Rails.configuration.foo.bar
Rails.configuration.foo.baz
例如
Rails.configuration.***.api_key
Rails.configuration.***.api_secret
我会将 *** 配置存储在某个 .rb 文件(config/initializers?)中,我显然会在 Rails.configuration
中拥有其他类似命名空间的文件
【问题讨论】:
【参考方案1】:你要找的是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
中使用它。
【讨论】:
【参考方案2】:在 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"
【讨论】:
以上是关于自定义 rails 配置部分的主要内容,如果未能解决你的问题,请参考以下文章
Ruby/Rails:您如何自定义 Devise 的邮件模板?