【发布时间】:2014-07-31 01:39:43
【问题描述】:
我不知道为什么会出现这个错误Net::OpenTimeout in ContatosController#create。我在 app/controllers/contatos_controller.rb 中有以下代码:
def create
@contato = Contato.new(contato_params)
respond_to do |format|
if @contato.save
ContatoMailer.mensagem(@contato).deliver
format.html { redirect_to contatos_path, notice: 'Obrigado por enviar sua mensagem! Em breve, responderemos.' }
format.json { render :show, status: :created, location: @contato }
else
format.html { render :new }
format.json { render json: @contato.errors, status: :unprocessable_entity }
end
end
end
在 app/mailers/contato_mailer.rb 中:
class ContatoMailer < ActionMailer::Base
default from: "myemail@gmail.com"
def mensagem(contato)
mail(:to => "myemail@gmail.com", :subject => "Subject")
end
end
在 config/initializers/setup_mail.rb:
ActionMailer::Base.smtp_settings = {
:address => 'smtp.gmail.com',
:port => 587,
:domain => 'domain.com',
:user_name => 'myemail@gmail.com',
:password => 'secret',
:authentication => :plain,
:enable_starttls_auto => true,
:ssl => true
}
当然还有 app/views/contato_mailer/mensagem.html.erb 中的模板。
当我从表单提交新消息时,Rails 会返回 “execution expired”,重点是 “ContatoMailer.mensagem(@contato).deliver”。 p>
请问,我做错了什么?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4