我想知道如何将自定义配置变量添加到Rails应用程序,以及如何在控制器中访问它们?
其次,我计划在我的应用程序中有S3支持上传,如果我想添加一个具有S3访问权限的yaml文件,秘密密钥,我如何在我的Rails应用程序中初始化它,以及如何访问我在配置文件中定义的值。
我想知道如何将自定义配置变量添加到Rails应用程序,以及如何在控制器中访问它们?
其次,我计划在我的应用程序中有S3支持上传,如果我想添加一个具有S3访问权限的yaml文件,秘密密钥,我如何在我的Rails应用程序中初始化它,以及如何访问我在配置文件中定义的值。
当前回答
我们在工作中开始做的是ActiveSupport Ordered Hash
它允许你在环境文件中清晰地定义你的配置。
config.service = ActiveSupport::OrderedOptions.new
config.service.api_key = ENV['SERVICE_API_KEY']
config.service.shared_secret = ENV['SERVICE_SHARED_SECRET']
其他回答
我真的很喜欢设置逻辑宝石。非常容易设置和使用。
https://github.com/binarylogic/settingslogic
我们在工作中开始做的是ActiveSupport Ordered Hash
它允许你在环境文件中清晰地定义你的配置。
config.service = ActiveSupport::OrderedOptions.new
config.service.api_key = ENV['SERVICE_API_KEY']
config.service.shared_secret = ENV['SERVICE_SHARED_SECRET']
我喜欢使用rails-settings用于需要通过web界面更改的全局配置值。
我只是想更新Rails 4.2中最新的很酷的东西,你现在可以在你的config/**/*中做这个。rb文件:
config.x.whatever.you.want = 42
...这将在你的应用程序中可用:
Rails.configuration.x.whatever.you.want
更多信息请访问:http://guides.rubyonrails.org/configuring.html#custom-configuration
在Rails 3.0.5中,以下方法对我来说是有效的:
在config /环境/发展。rb,写
config.custom_config_key = :config_value
值custom_config_key然后可以从其他文件引用
Rails.application.config.custom_config_key