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 禁用基于复选框值的文本字段

Rails 4,如何正确配置 smtp 设置(gmail)

如何在 ruby​​ on rails 4 中创建高级搜索

如何将 Polymer (1.0) 与 Rails (4) 一起使用?

如何在 Rails 4 中使用字体