Переменные среды равны нулю в приложении 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']
Другие вопросы по тегам