2016-11-05 80 views
0

我花了最後4個小時只是嘗試不同的事情來弄清楚爲什麼我在heroku上得到的電子郵件和錯誤正在發生。林很新到Rails這是我的第二個應用程序,所以請啞下來跟我說話像一個小的孩子,笑我無法讓我的表單在rails上使用ruby工作在heroku上

http://dev-match-matt-napper.herokuapp.com/contacts/new 這是我的Heroku的鏈接,當你點擊提交它說出事了。我正在關注udemy視頻的simpleCodeCast,但他還沒有回覆。

https://github.com/Mnapper3/simpleCodeCasts_saas 這是我的git樞紐的文件(主),我使用的是:

app/controller/contacts_controller 
app/mailers/contact_mailer 
app/models/contact 
app/contact_mailer/contact_email.html 
app/views/contacts/new.html 

真的希望我已經給了你足夠的信息來幫助我,或者你可以把你如何創建表單電子郵件發件人?或鏈接視頻

P.S.使用CLOUD9 &如果克隆該應用IM您需要:

bundle install 
bundle update 
rake db:migrate 

,那麼你就可以預覽。

請幫忙!!!
-Matt Napper

+4

請張貼'Heroku的logs' –

+0

你在本地測試,我認爲你應該先檢查一下當地的它的東西參數丟失或方法未定義類型的問題 –

+0

視頻表示,這將是更少的代碼來測試它在heroku中。它不會在c9的本地預覽中顯示任何錯誤,但不會發送電子郵件 –

回答

0

您需要在/config/environments/production.rb中將郵件程序配置添加爲heroku,默認情況下在生產模式下運行。

加入這個在您的/config/environments/production.rb

config.action_mailer.smtp_settings = { 
    address: "smtp.gmail.com", 
    port: 587, 
    domain: Rails.application.secrets.domain_name, 
    authentication: "plain", 
    enable_starttls_auto: true, 
    user_name: Rails.application.secrets.email_provider_username, 
    password: Rails.application.secrets.email_provider_password 
} 

# ActionMailer Config 
config.action_mailer.default_url_options = { :host => Rails.application.secrets.domain_name } 
config.action_mailer.delivery_method = :smtp 
config.action_mailer.perform_deliveries = true 
config.action_mailer.raise_delivery_errors = false 

然後在/config/secrets.yml加入生產區塊像下面,

production: 
    domain_name: <%= ENV["DOMAIN_NAME"] %> 
    email_provider_username: <%= ENV["GMAIL_USERNAME"] %> 
    email_provider_password: <%= ENV["GMAIL_PASSWORD"] %> 

最後,必須將這3個環境變量添加到您的heroku應用程序中。要添加它們,請轉到您的heroku應用程序設置頁面,我假設它應該是https://dashboard.heroku.com/apps/dev-match-matt-napper/settings

在那裏您會看到一個Reveal配置變量按鈕,點擊該按鈕並添加Key作爲環境變量和值,因爲它的值。例如:

主要是:GMAIL_USERNAME

值是:您的Gmail電子郵件地址

+0

實際上,你可以直接把用戶名和密碼的值放在production.rb中,但是這個文件會提交git和任何人都可以看到它,如果你的存儲庫是公開的。所以爲了避免我們使用在本地機器(而不是在應用程序)上創建的環境變量,並且爲了讓Heroku爲您提供一個很好的UI,以便從您的應用程序儀表板中添加它們,Heroku就是如此工作的。而secrets.yml只是一個很好地組織你的環境變量的文件。請記住,不要在您的應用程序中添加敏感信息,也不要在git或其他文件上提交任何文件,請使用環境變量。 –

相關問題