1

存储敏感凭据时,我通常会创建一个 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']

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

谢谢

4

2 回答 2

3

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

于 2013-04-01T14:34:53.510 回答
2

您是否考虑过使用Figaro来执行此操作?Figaro 的灵感来自 Heroku 的密钥应用程序配置,因此ENV在 Heroku 生产环境中可以轻松访问开发中的秘密变量。

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

于 2013-04-01T12:09:31.987 回答