Working with the book Learn Ruby on Rails, I'm stuck on the section of the tutorial where you connect to Google Drive to save the form submission to a spreadsheet.
I'm not able to authenticate w/ Google because Rails.application.secrets.email_provider_username
and Rails.application.secrets.email_provider_password
are nil. More specifically, it seems like my rails app isn't seeing any of my environment variables.
I've verified that the variables are set properly:
ynkwinl-ujurvt0:learn-rails katie$ printenv | grep GMAIL_USERNAME
[email protected]
And from the console:
learn-rails :001 > ENV["GMAIL_USERNAME"]
=> "[email protected]"
But trying to access it via Rails:
learn-rails :001 > Rails.application.secrets.email_provider_username
=> nil
The relevant line of secrets.yml:
email_provider_username: <%= ENV["GMAIL_USERNAME"] %>
I've been stuck on this for an hour and can't find an answer (the previous question on this topic covered a slightly different scenario).
I've worked around it by hard coding my username/password into the secrets.yml
file, but I'd like to understand what's going on for future reference.
Full 'secrets.yml' file for reference:
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"] %>
I had this problem and it was caused by spring running the server in the background even when I quit the server in the terminal.
If this is the cause in your case, you can fix it by running spring stop
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With