Rails 6 访问凭据不起作用?

Dav*_*Lee 6 ruby-on-rails stripe-payments ruby-on-rails-6

我正在尝试为 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
    
    Run Code Online (Sandbox Code Playgroud)
  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)

我究竟做错了什么?

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

nua*_*aky 3

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

Rails.application.credentials[Rails.env.to_sym][:stripe][:stripe_public_key]
Run Code Online (Sandbox Code Playgroud)

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