Ruby on rails 5 Rails凭证不支持的任何原因';不能在初始化器中工作?

Ruby on rails 5 Rails凭证不支持的任何原因';不能在初始化器中工作?,ruby-on-rails-5,Ruby On Rails 5,有什么原因我不能使用它吗 Rails.application.credentials[Rails.env.to_sym]['amazon']['client_id'] 在 目前,当我这样做时,我得到: config/initializers/omniauth.rb:2:in `<main>': undefined method `[]' for nil:NilClass (NoMethodError) config/initializers/omniauth.rb:2:in`:

有什么原因我不能使用它吗

 Rails.application.credentials[Rails.env.to_sym]['amazon']['client_id']

目前,当我这样做时,我得到:

config/initializers/omniauth.rb:2:in `<main>': undefined method `[]' for nil:NilClass (NoMethodError)
config/initializers/omniauth.rb:2:in`:nil:NilClass(NoMethodError)的未定义方法“[]”

这些
[]
呼叫中的任何一个都可能是罪魁祸首

可能是
Rails.application.credentials
为零

可能是
Rails.application.credentials[Rails.env.to_sym]
为零

可能是
Rails.application.credentials[Rails.env.to_-sym]['amazon']
为零

这一切都应该很容易测试它是哪一个

我猜这是因为使用
amazon
作为字符串而不是符号。如果您的
config/credentials.yml.enc
如下所示

production:
  amazon:
    client_id: 12345
然后尝试使用符号键。虽然这可能是一个访问无关的散列

Rails.application.credentials[Rails.env.to_sym][:amazon][:client_id]

这是什么版本的Rails 5。是的,它是5.2,在下面的答案上升的同时,我想我应该做符号而不是字符串。是时候休息一下了
Rails.application.credentials[Rails.env.to_sym][:amazon][:client_id]