如何在rails中定义自定义配置变量

不羁岁月 提交于 2020-03-08 18:32:08

我想知道如何将自定义配置变量添加到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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!