2015-02-23 13 views
5

Learn Ruby on Rails kitabıyla birlikte çalışarak, bir e-tabloya form gönderimini kaydetmek için Google Drive'a bağlandığınız öğretmenin bölümünde takılıyorum.Ortam değişkenleri Rails uygulamasında geçersiz (Google Drive'a bağlanamıyor)

Rails.application.secrets.email_provider_username ve Rails.application.secrets.email_provider_password nil olduğu için w/Google kimlik doğrulaması yapılamıyor. Daha spesifik olarak, raylar uygulamam ortam değişkenlerimden hiçbirini görmüyor gibi görünüyor.

Ben değişkenler düzgün ayarlanmış doğrulandıktan:

learn-rails :001 > ENV["GMAIL_USERNAME"] 
=> "[email protected]" 

Ama Raylar yoluyla ulaşmaya çalışıyorsunuz:

learn-rails :001 > Rails.application.secrets.email_provider_username 
=> nil 

The

ynkwinl-ujurvt0:learn-rails katie$ printenv | grep GMAIL_USERNAME 
[email protected] 

Ve konsoldan

İlgili satır: secrets0l:

email_provider_username: <%= ENV["GMAIL_USERNAME"] %> 

Bu konuda bir saat boyunca takıldım ve bir cevap bulamıyorum (bu konuyla ilgili önceki soru biraz farklı bir senaryoda ele alınmıştır).

Kullanıcı adımı/parolamı secrets.yml dosyasına kodlayarak sabit bir şekilde çalıştım, ancak gelecekte başvurmak üzere olup bitenleri anlamak istiyorum. referans için

Full 'secrets.yml' file:

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"] %> 
+0

Bir secrets.yml içeriği ekleyebilir misiniz? – intale

+0

Orijinal yayına eklendi. – Katie

+0

Hiçbir şey akla geliyor. Tek test env'inde bu anahtarlar yoktur. Doğru ortamı yüklediğinizden emin olmak için raylar konsolunuzda 'Rails.env' çalıştırılabilir mi? – intale

cevap

0

Dene:

Rails.application.secrets['email_provider_username'] 
7

bu sorunu vardı ve ben çıkmak bile arka planda sunucu çalışan spring neden oldu terminaldeki sunucu.

Durumunuzdaki neden bu ise, spring stop'u çalıştırarak sorunu çözebilirsiniz.

+1

Terminalimde (yayın konsolu değil) 'yaylı durdurma' çalışıyor. Teşekkürler! –

+0

Bir kurtarıcısın! Bence rubymine benim için her ne sebeple olursa olsun baharı başlattı ... Ben bile kullanmıyorum. Teşekkürler – manroe

İlgili konular