无法使用 [Rails.env] 访问 :development 或 :production 凭据
Cannot access :development or :production credentials with [Rails.env]
我正在将应用程序升级到 Rails 5.2.0 并尝试创建 credentials.yml.enc
文件,这样我就可以为 :development
和:production
环境。
我正在关注 this tutorial。
我的credentials.yml.enc
development:
aws:
access_key_id: 123dev
secret_access_key: 345dev
bucket: development_bucket
production:
aws:
access_key_id: 123pr
secret_access_key: 345pr
bucket: production_bucket
aws:
access_key_id: long_hexidecimal_string
secret_access_key: longer_hexidecimal_string
在控制台中,如果我输入 Rails.application.credentials[:aws][:access_key_id]
然后我得到预期的输出:long_hexidecimal_string
但是当我输入 Rails.application.credentials[Rails.env][:aws][:access_key_id]
时,我得到这个错误:NoMethodError: undefined method []' for nil:NilClass
正在测试yml文件是否有问题,我试过了,得到了预期的结果:
irb(main):015:0> Rails.application.credentials[:development][:aws][:access_key_id]
=> "123dev"
我认为问题是 [Rails.env]
产生 ["development"]
,而不是 [:development]
。有没有一种简单的方法来符号化 [Rails.env]
输出?我希望 [Rails.env.symbolize!]
但这行不通。
我应该花更多的时间在谷歌上搜索而不是输入这个问题。
irb(main):016:0> Rails.application.credentials[Rails.env.to_sym][:aws][:access_key_id]
=> "123dev"
我希望有一天这对某人有所帮助!
我正在将应用程序升级到 Rails 5.2.0 并尝试创建 credentials.yml.enc
文件,这样我就可以为 :development
和:production
环境。
我正在关注 this tutorial。
我的credentials.yml.enc
development:
aws:
access_key_id: 123dev
secret_access_key: 345dev
bucket: development_bucket
production:
aws:
access_key_id: 123pr
secret_access_key: 345pr
bucket: production_bucket
aws:
access_key_id: long_hexidecimal_string
secret_access_key: longer_hexidecimal_string
在控制台中,如果我输入 Rails.application.credentials[:aws][:access_key_id]
然后我得到预期的输出:long_hexidecimal_string
但是当我输入 Rails.application.credentials[Rails.env][:aws][:access_key_id]
时,我得到这个错误:NoMethodError: undefined method []' for nil:NilClass
正在测试yml文件是否有问题,我试过了,得到了预期的结果:
irb(main):015:0> Rails.application.credentials[:development][:aws][:access_key_id]
=> "123dev"
我认为问题是 [Rails.env]
产生 ["development"]
,而不是 [:development]
。有没有一种简单的方法来符号化 [Rails.env]
输出?我希望 [Rails.env.symbolize!]
但这行不通。
我应该花更多的时间在谷歌上搜索而不是输入这个问题。
irb(main):016:0> Rails.application.credentials[Rails.env.to_sym][:aws][:access_key_id]
=> "123dev"
我希望有一天这对某人有所帮助!