Как я могу использовать Rails.application.credentials.dig для загрузки данных во фразу storage.yml? - PullRequest
0 голосов
/ 11 мая 2019

Если я оставлю свои облачные учетные данные в открытом виде в файле storage.yml, мое приложение Ruby on Rails будет работать нормально.Если я пытаюсь использовать те же данные, вызывая извлечение из файла секретов, моя программа завершается неудачно, запрашивая ключ API.

Ниже приведены два представления строфы в моем файле storage.yml, верхняя часть(с облачным кодом без 'i') - код, который не работает.Второй раздел (с реальными данными my_xxx вместо этих заполнителей) работает нормально.Каким-то образом я путаю функцию credentials.dig, но не понимаю, в чем я не прав.Файл credentials.yml.enc содержит точную копию второй строфы с правильным местом для учетных данных под главным ключом.

cloudnary:

service: Cloudinary

cloud_name: <%= Rails.application.credentials.dig(:cloudinary, :cloud_name) %>

api_key: <%= Rails.application.credentials.dig(:cloudinary, :api_key) %>
api_secret: <%= Rails.application.credentials.dig(:cloudinary, :api_secret) %>

cloudinary:

service: Cloudinary

cloud_name: my_cloud_name

api_key: my_cloudinary_api_key

api_secret: my_api_secret

Я ожидаю, что смогу использовать файл credentials.yml.enc для хранения облачных учетных данных.

1 Ответ

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

Обнаружено, что если я возьму ': cloudinary' из ... dig (: cloudinary,: cloud_name), операции dig вернут значение правильно.Поэтому правильный формат для файла storage.yml:

service: cloudinary

cloud_name: <% = Rails.application.credentials.dig (: cloud_name)%>

api_key: <% = Rails.application.credentials.dig (: api_key)%>

api_secret: <% = Rails.application.credentials.dig (: api_secret)%>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...