Rails Rails 5.2 的新 secret credentials 怎样让不同的环境使用不同的配置?

jonnoj · 2018年04月18日 · 最后由 charlie_hsieh 回复于 2021年10月17日 · 3364 次阅读

以前在 secrets.yml 中配置不同的环境:development / test / production,一个文件就可以了

现在在 credentials.yml.enc 中,全部都在一起。


比如我现在有 staging 服务器和 production 服务器,两台服务器分别用 staging 和 production 两个分支管理源码,当然两个服务器的 credentials.yml.enc 的配置会有所不同。

这时候我开新分支加一个新功能,加了些额外的配置,合并的时候怎么办?这样会把两台服务器不同的配置都覆盖了吧?

说个无关的...讲真我觉得 https://github.com/Shopify/ejson 更好用一些。。。

https://gorails.com/episodes/rails-5-2-encrypted-credentials?autoplay=1

这个视频好像有讲到你的问题,使用master.key

请问有 credentials 使用的最佳实践吗?用起来好别扭

可以配置的吧?EDITOR=vim rails credentials:edit 然后

development:
  oss_key: your_key_in_development

production:
  oss_key: your_key_in_production

用的时候:

Rails.application.credentials[Rails.env.to_sym][:oss_key]
chriszou 回复

This also works well:

Rails.application.credentials.dig(Rails.env.to_sym, :oss_key)
需要 登录 后方可回复, 如果你还没有账号请 注册新账号