【问题标题】:Making ENV variables accessible in development使 ENV 变量在开发中可访问
【发布时间】:2013-03-22 11:17:05
【问题描述】:

在存储敏感凭据时,我通常会创建一个 yml 文件并将其加载到我的 development.rb 中

APP_CONFIG = YAML.load_file("#{Rails.root}/config/config.yml")[Rails.env]

然后我可以像这样访问

APP_CONFIG["google_secret"]

问题是 Heroku 不喜欢这样,所以我需要在本地设置 ENV 变量以使集成更容易。所以我创建了一个这样的 env.rb 文件

ENV['google_key'] = 'xxx'
ENV['google_secret'] = 'xxx'
ENV['application_key'] = 'xxx'

我想我可以使用它来访问它

x = ENV['application_key']

但是它没有找到变量,我如何在开发环境中加载它们?

谢谢

【问题讨论】:

  • 请确保您已将env.rb 文件放入initializers 文件夹中。
  • 我把我的 env.rb 文件放到了 config 文件夹里,这不正确吗?
  • 没有。您应该将 env.rb 文件放在initializers 文件夹中。
  • 那么我想也将它添加到 gitignore 文件中?
  • 这取决于您的要求。如果您不想将文件推送到heroku,则应将其添加到.gitignore 文件中。

标签: ruby-on-rails ruby-on-rails-3 environment-variables


【解决方案1】:

您应该将env.rb 文件放在initializers 文件夹中。如果您不想将其推送到heroku,可以将env.rb 文件添加到.gitignore 文件。

【讨论】:

    【解决方案2】:

    您是否考虑过使用Figaro 来执行此操作? Figaro 是 inspired by Heroku's secret key application configuration,因此在 Heroku 生产环境中可以轻松访问开发中的秘密 ENV 变量。

    我在 this StackOverflow thread 上写了一个关于在 Rails 中隐藏秘密信息(使用 Figaro)的答案,希望也可以为您提供一些参考。

    【讨论】:

      猜你喜欢
      • 2023-01-23
      • 2019-01-29
      • 1970-01-01
      • 2017-08-19
      • 2015-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-22
      相关资源
      最近更新 更多