Làm việc với sách Learn Ruby on Rails, tôi bị kẹt trong phần hướng dẫn nơi bạn kết nối với Google Drive để lưu biểu mẫu vào bảng tính.Biến môi trường là không trong ứng dụng Rails (không thể kết nối với Google Drive)
Tôi không thể xác thực w/Google vì Rails.application.secrets.email_provider_username
và Rails.application.secrets.email_provider_password
là không. Cụ thể hơn, có vẻ như ứng dụng đường ray của tôi không nhìn thấy bất kỳ biến môi trường nào của tôi.
tôi đã xác minh rằng các biến được thiết lập đúng:
ynkwinl-ujurvt0:learn-rails katie$ printenv | grep GMAIL_USERNAME
GMAIL_USERNA[email protected]
Và từ giao diện điều khiển:
learn-rails :001 > ENV["GMAIL_USERNAME"]
=> "[email protected]"
Nhưng cố gắng truy cập nó thông qua Rails:
learn-rails :001 > Rails.application.secrets.email_provider_username
=> nil
Các dòng liên quan của secrets.yml:
email_provider_username: <%= ENV["GMAIL_USERNAME"] %>
Tôi đã bị kẹt trong này một giờ và không thể tìm thấy câu trả lời (câu hỏi trước về chủ đề này có một kịch bản hơi khác).
Tôi đã làm việc xung quanh nó bằng cách mã hóa cứng tên người dùng/mật khẩu của mình vào tệp secrets.yml
, nhưng tôi muốn hiểu điều gì đang diễn ra để tham khảo trong tương lai.
Full 'secrets.yml' tập tin để tham khảo:
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"] %>
Bạn có thể đính kèm nội dung của secret.yml không? – intale
Đã thêm vào bài đăng gốc. – Katie
Không có gì xảy ra. Env kiểm tra duy nhất không có các khóa đó. Bạn có thể thực hiện 'Rails.env' trong bảng điều khiển đường ray để đảm bảo rằng bạn đang tải môi trường chính xác không? – intale