【问题标题】:Rails 4 - how can I use a constant in the /config/environments/production.rb file?Rails 4 - 如何在 /config/environments/production.rb 文件中使用常量?
【发布时间】: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 的行就可以了。

标签: ruby-on-rails ruby environment-variables production staging


【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-22
      • 1970-01-01
      • 2010-09-27
      • 1970-01-01
      • 1970-01-01
      • 2014-11-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多