存储敏感凭据时,我通常会在我的development.rb
中创建一个yml文件并加载它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']
但它找不到变量,如何在开发环境中加载它们?
由于
答案 0 :(得分:3)
您应该将env.rb
文件放在initializers
文件夹中。如果您不想将env.rb
文件推送到heroku,可以将其添加到.gitignore
文件中。
答案 1 :(得分:2)
您是否考虑过使用Figaro来执行此操作? Figaro是inspired by Heroku's secret key application configuration,因此在Heroku生产环境中可以轻松地在开发中制作秘密ENV
变量。
我在this StackOverflow thread上写了一个关于在Rails中隐藏秘密信息的答案(使用费加罗语),这些信息可以为你提供一些参考资料。