我想知道如何将自定义配置变量添加到Rails应用程序,以及如何在控制器中访问它们?

其次,我计划在我的应用程序中有S3支持上传,如果我想添加一个具有S3访问权限的yaml文件,秘密密钥,我如何在我的Rails应用程序中初始化它,以及如何访问我在配置文件中定义的值。


当前回答

我真的很喜欢设置逻辑宝石。非常容易设置和使用。

https://github.com/binarylogic/settingslogic

其他回答

我将建议如何处理应用程序中的配置的好方法。有三个基本规则:

改变你的配置而不是代码; 在条件下使用配置; 编写有意义的代码。

要获得更详细的概述,请参见以下链接:以正确的方式配置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中,特定于应用程序的自定义配置数据可以放置在应用程序配置对象中。配置可以在初始化文件或环境文件中分配——例如对于给定的应用程序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/binarylogic/settingslogic

我喜欢使用rails-settings用于需要通过web界面更改的全局配置值。