好的,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
哈希域:
它看起來像你的應用程序無法連接到Gmail出於某種原因。也許看看使用另一種服務,如[SendGrid](http://sendgrid.com) –
第54行沒有錯,它只是該代碼塊的入口點。如果你註釋掉第58行,異常消失了嗎?更好的嘗試使用[調試器](http://www.themomorohoax.com/2009/02/09/use-debugger)。 –
負面評論第58行不會改變事情。 – thefonso