[将credit.yml与rails一起使用在Rails 5.2上

问题描述 投票:0回答:1

我在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']?

感谢您的帮助!

ruby-on-rails heroku environment-variables ruby-on-rails-5
1个回答
0
投票

创建凭据.yml和主密钥:

rails credentials:edit 

编辑credentails:

EDITOR=vim rails credentials:edit

使用VIM:

  • 用于插入
  • 按i //进行必要的编辑
  • 用于退出按Esc键
  • :wq //退出和保存
  • :q! //用于退出而不保存

凭证示例。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中的凭据。祝你好运:)

© www.soinside.com 2019 - 2024. All rights reserved.