2011-08-11 74 views
5

好的,Rails noob提出一個問題。我在這裏第一次嘗試Rails。我正在讀Rails 4th ed的Agile Web Dev。我的生產箱上出現此錯誤。 這下的WEBrick工作在發展模式,我收到一封電子郵件發送給我的Gmail acount和evrything但在生產模式下,我得到這個錯誤我的Apache中...Errno :: ECONNREFUSED在OrdersController#create

Errno::ECONNREFUSED in OrdersController#create 
Connection refused - connect(2) 

應用痕跡...

app/controllers/orders_controller.rb:58:in `create' 
app/controllers/orders_controller.rb:54:in `create' 

,這裏是DEF創建應用程序/控制器/ order_controller.rb

def create 
@order = Order.new(params[:order]) 
@order.add_line_items_from_cart(current_cart) 

respond_to do |format| #THIS IS LINE 54 
    if @order.save 
    Cart.destroy(session[:cart_id]) 
    session[:cart_id] = nil 
    Notifier.order_received(@order).deliver  #THIS IS LINE 58 
    format.html { redirect_to(store_url, :notice => I18n.t('.thanks')) } 
    format.xml { render :xml => @order, :status => :created, :location => @order } 
    else 
    format.html { render :action => "new" } 
    format.xml { render :xml => @order.errors, :status => :unprocessable_entity } 
    end 
end 

這有什麼錯我的線58和54?這是否與我的app/config/environment.rb中的action_mailer設置有關?

這裏的environment.rb

# Load the rails application 
require File.expand_path('../application', __FILE__) 

# Initialize the rails application 
Depot::Application.initialize! 

#uncertain about anything below this line 

Depot::Application.configure do 
    config.action_mailer.delivery_method = :smtp 
    config.action_mailer.smtp_settings = { 
    :address => "smtp.gmail.com", 
    :port  => 587, 
    :domain  => "gmail.com", 
    :authentication => "plain", 
    :user_name => "[email protected]", 
    :password => "<password>", 
    :enable_starttls_auto => true 
} 
end 

任何幫助表示讚賞。謝謝。

config.action_mailer.smtp_settings = { 
    enable_starttls_auto: true, 
    address: 'smtp.gmail.com', 
    port: 587, 
    authentication: 'plain', 
    user_name: '[email protected]', 
    password: '<password>' 
} 

注意,我沒有包括對smtp_settings哈希域:

+1

它看起來像你的應用程序無法連接到Gmail出於某種原因。也許看看使用另一種服務,如[SendGrid](http://sendgrid.com) –

+0

第54行沒有錯,它只是該代碼塊的入口點。如果你註釋掉第58行,異常消失了嗎?更好的嘗試使用[調試器](http://www.themomorohoax.com/2009/02/09/use-debugger)。 –

+0

負面評論第58行不會改變事情。 – thefonso

回答

5

我閱讀時的書,但下面的配置使工作有同樣的問題。

最後一件事,一定要在您做出更改後重新啓動您的rails應用程序。這將爲您節省一些不必要的麻煩。

+0

在谷歌應用領域爲我工作。謝謝 –

2

信譽太低,無法發表評論,但在@埃德加的回答,也確保,如果你是在一個YAML配置的SMTP設置閱讀,您使用symbolize_keys!

email_settings = YAML::load(File.open("#{Rails.root.to_s}/config/email.yml")) 
config.action_mailer.smtp_settings = email_settings[Rails.env].symbolize_keys! unless email_settings[Rails.env].nil? 

Rails不檢查字符串鍵和善良,這是一個漫長的3小時...

相關問題