Rails6 访问凭据不起作用?

Rails 6 accessing credentials does not work?

我正在尝试为 Rails 6 项目设置 Stripe 付款表格,但我无法访问我的 Stripe 密钥。我遇到错误 NoMethodError (undefined method `[]' for nil:NilClass) 我做错了什么?

这是我所做的

  1. 编辑我的 credentials.yml.enc - 在控制台中输入 EDITOR="code --wait" bin/rails credentials:edit

  2. 将我的密钥添加到 credentials.yml.enc

    some_variable: secret_stuff
    development: 
      stripe:
        stripe_public_key: fake_key
        strip_secret_key: fake_key
    
  3. 关闭文件并仔细检查它是否保存了我的代码,方法是打开文件以验证它是否已保存(它是)

  4. 打开 rails 控制台并输入 Rails.application.credentials.some_variable
    我预计 secret_stuff 但我得到 nil.
    输入 Rails.application.credentials.development[:stripe][:stripe_public_key]. 我预计 fake_key 但我得到了 NoMethodError (undefined method `[]' for nil:NilClass)

我做错了什么?

我不能显示信用卡表格,我只想把它弄起来运行这样我就可以向人们收费并成为百万富翁。

您可能访问了凭据环境错误,这应该有效:

Rails.application.credentials[Rails.env.to_sym][:stripe][:stripe_public_key]

credentials.development => credentials[Rails.env.to_sym](因此您正在访问当前环境变量)

我不得不做 Rails.application.credentials.stripe[:stripe_public_key]