我想知道如何将自定义配置变量添加到Rails应用程序,以及如何在控制器中访问它们?
其次,我计划在我的应用程序中有S3支持上传,如果我想添加一个具有S3访问权限的yaml文件,秘密密钥,我如何在我的Rails应用程序中初始化它,以及如何访问我在配置文件中定义的值。
我想知道如何将自定义配置变量添加到Rails应用程序,以及如何在控制器中访问它们?
其次,我计划在我的应用程序中有S3支持上传,如果我想添加一个具有S3访问权限的yaml文件,秘密密钥,我如何在我的Rails应用程序中初始化它,以及如何访问我在配置文件中定义的值。
当前回答
这适用于rails 3.1:
在config /环境。Rb(或在config/environments/..以特定环境为目标):
YourApp::Application.config.yourKey = 'foo'
这将在控制器或视图中访问,如下所示:
YourApp::Application.config.yourKey
(YourApp应替换为您的应用程序名称。)
注意:它是Ruby代码,所以如果你有很多配置键,你可以这样做:
在config /环境。rb:
YourApp::Application.configure do
config.something = foo
config.....
config....
.
config....
end
其他回答
在Rails 3.0.5中,以下方法对我来说是有效的:
在config /环境/发展。rb,写
config.custom_config_key = :config_value
值custom_config_key然后可以从其他文件引用
Rails.application.config.custom_config_key
我只是想更新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中,特定于应用程序的自定义配置数据可以放置在应用程序配置对象中。配置可以在初始化文件或环境文件中分配——例如对于给定的应用程序MyApp:
MyApp::Application.config.custom_config_variable = :my_config_setting
or
Rails.configuration.custom_config_variable = :my_config_setting
要读取设置,只需调用配置变量而不设置它:
Rails.configuration.custom_config_variable
=> :my_config_setting
UPDATE Rails 4
在Rails 4中,有一个新的方法=> http://guides.rubyonrails.org/configuring.html#custom-configuration
看看这个整洁的宝石,正是这样做的: https://github.com/mislav/choices
这样,您的敏感数据就不会暴露在开源项目中
这适用于rails 3.1:
在config /环境。Rb(或在config/environments/..以特定环境为目标):
YourApp::Application.config.yourKey = 'foo'
这将在控制器或视图中访问,如下所示:
YourApp::Application.config.yourKey
(YourApp应替换为您的应用程序名称。)
注意:它是Ruby代码,所以如果你有很多配置键,你可以这样做:
在config /环境。rb:
YourApp::Application.configure do
config.something = foo
config.....
config....
.
config....
end