Rails 4 - 如何在 /config/environments/production.rb 文件中使用常量?
Posted
技术标签:
【中文标题】Rails 4 - 如何在 /config/environments/production.rb 文件中使用常量?【英文标题】:Rails 4 - how can I use a constant in the /config/environments/production.rb file? 【发布时间】:2016-09-27 00:11:59 【问题描述】:在config/data.yml
,我有:
development:
something: some_value
production:
something: different_value
在config/initializers/constants.rb
,我加载它:
CONST_DATA = YAML.load_file("#::Rails.root/config/data.yml")[::Rails.env]
然后我想在/config/environments/production.rb
文件中使用这个CONST_DATA
,但是当我这样做时,我得到一个错误提示
ERROR -- : uninitialized constant CONST_DATA (NameError)
如何使这个常量在/config/environments/production.rb
文件中可访问?
谢谢
【问题讨论】:
初始化程序仅在环境设置后运行。但是当然,您可以使用例如在production.rb
的顶部显式加载常量。 require 'config/initializers/constants'
.
另外,我猜想直接在您的 production.rb 或 application.rb 中包含带有load_file
的行就可以了。
【参考方案1】:
Config gem 帮助您以简单易用的方式轻松管理特定于环境的设置。
以下链接解释了如何在 rails 中定义自定义配置变量:
How to define custom configuration variables in rails
【讨论】:
【参考方案2】:从release of Rails 4.1 开始,就有一个名为config/secrets.yml
的文件。此数据在初始化期间加载并可用。然后,您可以像这样访问其中的密钥:
Rails.application.secrets.key_name
【讨论】:
以上是关于Rails 4 - 如何在 /config/environments/production.rb 文件中使用常量?的主要内容,如果未能解决你的问题,请参考以下文章
在 Rails 4 中如何使用 attr_accessible?
Rails 4:如何在 Rails 中使用 JQuery 禁用基于复选框值的文本字段