我想知道如何将自定义配置变量添加到rails应用程序以及如何在控制器中访问它们,例如我想能够在配置文件中定义upload_directory,例如development.rb并且能够在我的一个中访问它控制器。
其次我计划在我的应用程序中为上传提供S3支持,如果我想添加带有s3访问,密钥的yaml文件,如何在我的Rails应用程序中初始化它以及如何访问我定义的值在该配置文件中。
#1楼
如果您使用Heroku或者需要将您的应用程序设置保留为环境变量,那么figaro gem非常有用。
#2楼
更新1
非常推荐:我现在正在使用Rails Config gem进行精细控制。
UPDATE2
如果您想要快速解决方案,请查看下面的Jack Pratt的答案 。
虽然我的原始答案仍然有效,但这个答案现在已经过时了。 我建议查看更新1和2。
原答案:
要快速解决方案,观看由Ryan Bates 演绎的“YAML配置文件” 屏幕应该会非常有帮助。
综上所述:
# 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
#3楼
我喜欢将rails-settings用于需要通过Web界面更改的全局配置值。
#4楼
我建议如何处理应用程序中的配置。 有三个基本规则:
- 改变你的配置而不是代码;
- 在条件下使用配置;
- 写代码意味着什么。
要获得更详细的概述,请访问以下链接: 以正确的方式配置Rails
#5楼
我只是想在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
来源:oschina
链接:https://my.oschina.net/stackoom/blog/3190069