Невозможно получить доступ: учетные данные для разработки или: производственные учетные данные с помощью [Rails.env] - PullRequest
0 голосов
/ 11 мая 2018

Я обновляю приложение до 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!], но это не работает.

1 Ответ

0 голосов
/ 11 мая 2018

Я должен был потратить больше времени на поиск в Google, а не набирать этот вопрос.

irb(main):016:0> Rails.application.credentials[Rails.env.to_sym][:aws][:access_key_id]
=> "123dev"

Надеюсь, это поможет кому-нибудь однажды!

...