使用本书Learn Ruby on Rails时,我遇到了连接到Google Drive的教程部分,以将表单提交保存到电子表格。Rails应用程序中的环境变量为零(无法连接到Google Drive)
我无法验证w/Google,因为Rails.application.secrets.email_provider_username
和Rails.application.secrets.email_provider_password
都是零。更具体地说,它看起来像我的Rails应用程序没有看到我的任何环境变量。
我已经验证了这两个变量的设置是否正确:
ynkwinl-ujurvt0:learn-rails katie$ printenv | grep GMAIL_USERNAME
[email protected]
而且从控制台:
learn-rails :001 > ENV["GMAIL_USERNAME"]
=> "[email protected]"
但是,试图通过Rails的访问它:
learn-rails :001 > Rails.application.secrets.email_provider_username
=> nil
的相关的保密信息.yml:
email_provider_username: <%= ENV["GMAIL_USERNAME"] %>
我一直坚持这一个小时,并找不到答案(关于此主题的上一个问题涵盖了一个稍有不同的方案)。
我已经通过将我的用户名/密码硬编码到secrets.yml
文件中解决了这个问题,但我想了解将来参考的内容。
全部“secrets.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"] %>
你可以附加secrets.yml的内容吗? – intale 2015-02-23 13:31:52
已添加到原始帖子。 – Katie 2015-02-24 16:26:01
什么都没有想到。唯一的测试环境没有这些密钥。你能否在你的rails控制台执行'Rails.env'来确保你正在加载正确的环境? – intale 2015-02-24 16:59:00