Переменные среды равны нулю в приложении Rails (невозможно подключиться к Google Drive)
Работая с книгой Learn Ruby on Rails, я застрял в разделе учебника, где вы подключаетесь к Google Drive, чтобы сохранить отправку формы в электронную таблицу.
Я не могу подтвердить подлинность с Google, потому что Rails.application.secrets.email_provider_username
а также Rails.application.secrets.email_provider_password
ноль. В частности, кажется, что мое приложение rails не видит ни одной из переменных среды.
Я проверил, что переменные установлены правильно:
ynkwinl-ujurvt0:learn-rails katie$ printenv | grep GMAIL_USERNAME
GMAIL_USERNAME=kjXXXXXX@gmail.com
И из консоли:
learn-rails :001 > ENV["GMAIL_USERNAME"]
=> "kjXXXXXX@gmail.com"
Но пытаемся получить к нему доступ через Rails:
learn-rails :001 > Rails.application.secrets.email_provider_username
=> nil
Соответствующая строка secrets.yml:
email_provider_username: <%= ENV["GMAIL_USERNAME"] %>
Я застрял на этом в течение часа и не могу найти ответ (предыдущий вопрос по этой теме охватывал немного другой сценарий).
Я работал над этим путем жесткого кодирования моего имени пользователя / пароля в secrets.yml
файл, но я хотел бы понять, что происходит для дальнейшего использования.
Полный файл "secretts.yml" для справки:
development:
email_provider_username: <%= ENV["GMAIL_USERNAME"] %>
email_provider_password: <%= ENV["GMAIL_PASSWORD"] %>
domain_name: example.com
mailchimp_api_key: <%= ENV["MAILCHIMP_API_KEY"] %>
mailchimp_list_id: <%= ENV["MAILCHIMP_LIST_ID"] %>
owner_email: <%= ENV["OWNER_EMAIL"] %>
secret_key_base: very_long_random_string
test:
secret_key_base: very_long_random_string
# Do not keep production secrets in the repository,
# instead read values from the environment.
production:
email_provider_username: <%= ENV["GMAIL_USERNAME"] %>
email_provider_password: <%= ENV["GMAIL_PASSWORD"] %>
domain_name: <%= ENV["DOMAIN_NAME"] %>
mailchimp_api_key: <%= ENV["MAILCHIMP_API_KEY"] %>
mailchimp_list_id: <%= ENV["MAILCHIMP_LIST_ID"] %>
owner_email: <%= ENV["OWNER_EMAIL"] %>
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
2 ответа
У меня была эта проблема, и она была вызвана весенним запуском сервера в фоновом режиме, даже когда я покинул сервер в терминале.
Если это причина в вашем случае, вы можете исправить это, запустив spring stop
,
Пытаться:
Rails.application.secrets['email_provider_username']