我在Rails 5.2上有一个应用程序,以前曾在DigitalOcean上托管过,但我需要在heroku上托管它。我一直在阅读heroku无法读取Credentials.yml,因为它位于gitignore上,当然我也不想将其公开。
所以我的关键变量是这样的(以及带有redis的示例):
host: Rails.application.credentials.redis_host,
password: Rails.application.credentials.redis_password
Heroku无法阅读。所以我的问题是将其更改为heroku ENV变量的最佳方法是什么?我是否需要将所有当前密钥(大约340个)编辑为ENV ['SOMEKEY']?
感谢您的帮助!
创建凭据.yml和主密钥:
rails credentials:edit
编辑credentails:
EDITOR=vim rails credentials:edit
使用VIM:
凭证示例。YML可以看起来:
development:
github:
client: acascascsacascascasc
secret: vdsvsvg34g34g
production:
github:
client: 34g3rvv
secret: erberb43
查找凭证:
rails c
Rails.application.credentials.dig(:aws, :access_key_id)
或如果使用env变量
Rails.application.credentials[Rails.env.to_sym][:aws][:access_key_id]
凭据.yml文件不应位于gitignore中。
解密凭据的主密钥应该在gitignore中。
要在生产环境中设置主密钥:
heroku config:set RAILS_MASTER_KEY=123456789
或
heroku config:set RAILS_MASTER_KEY=`cat config/master.key`
您需要了解Ruby on Rails中的凭据。祝你好运:)