Я обновляю приложение до Rails 5.2.0 и пытаюсь создать файл credentials.yml.enc
, чтобы получить доступ к другому :aws
сегменту как для :development
, так и :production
сред.
Я следую этому учебнику .
Мои учетные данные.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!]
, но это не работает.