问题描述
我想知道如何添加自定义配置变量到rails应用程序以及如何在控制器中访问它们,例如我想能够在配置文件中定义一个upload_directory,如development.rb,并且能够访问它我的控制器之一。
其次,我计划在我的应用程序中支持S3上传,如果我想添加一个yaml文件与s3访问,密钥,如何在我的Rails应用程序中初始化它,以及如何访问我在该配置文件中定义的值。
更新1
非常推荐:我会使用。 p>
虽然下面的原始答案仍然有效,但这个答案现在已经过时了。建议您查看更新1和2。
要获得快速解决方案,请观看YAML配置文件屏幕投射
#config / initializers / load_config.rb
APP_CONFIG = YAML.load_file(#{Rails.root} /config/config.yml)[Rails.env]
#应用程序。 rb
if APP_CONFIG ['perform_authentication']
#Do stuff
end
I was wondering how to add custom configuration variables to a rails application and how to access them in the controller, for e.g I wanna be able to define an upload_directory in the configuration files say development.rb and be able to access it in one of my controllers.
Secondly I was planning to have S3 support for uploads in my application, if i wanted to add a yaml file with the s3 access, secret key, how do I initialize it in my Rails App and how do I access the values that I have defined in that config file.
Update 1
Very recommended: I'm going with Rails Config gem nowadays for the fine grained control it provides.
Update2
If you want a quick solution, then check Jack Pratt's answer below.
Although my original answer below still works, this answer is now outdated. I recommend looking at updates 1 and 2.
Original Answer:
For a quick solution, watching the "YAML Configuration File" screen cast by Ryan Bates should be very helpful.
In summary:
# config/initializers/load_config.rb
APP_CONFIG = YAML.load_file("#{Rails.root}/config/config.yml")[Rails.env]
# application.rb
if APP_CONFIG['perform_authentication']
# Do stuff
end
这篇关于如何在rails中定义自定义配置变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!