Rails 6:如何创建在开发和测试中都有效但在生产中无效的凭证?

Rails 6: How do I create credentials that work in both dev and test but not production without duplication?

我已经通过 运行

创建了一个文件来保存开发凭据
EDITOR="subl --wait" rails credentials:edit --environment development

因此,例如,我可以在 dev.

中访问 Rails.application.credentials.vonage

然而,在测试中做同样的事情,我得到 nil:

> Rails.application.credentials.vonage
=> nil

如何在不重复的情况下为开发和测试设置共享凭据,而不是为生产设置共享凭据?

您可以配置测试环境以查找开发文件和密钥。

# config/environments/test.rb
Rails.application.configure do |config|

  ...

  config.credentials.content_path = Rails.root.join("config/credentials/development.yml.enc")
  config.credentials.key_path = Rails.root.join("config/credentials/development.key")

  ...

end

有关更多信息,请参阅 Rails General Configuration