我有一个非常简单的Rails应用程序,我想在创建工作请求时发送电子邮件。我是Rails的新手,所以我找到了一些关于如何在线完成的细节。设置邮件程序,配置它等。设置我的模板。细
在我的work_requests_controller.rb中,我有:
def create
@work_request = WorkRequest.new(params[:work_request])
respond_to do |format|
if @work_request.save
# Tell the mailer to send a welcome Email after save
PersonMailer.work_request_init_email(@work_request).deliver
format.html... etc.
知道邮件是有效的,因为如果我去Rails控制台,创建WorkRequest对象,并使用完全相同的行(PersonMailer.work ...),它发送邮件就好了。但是当我在我的应用程序中创建工作请求时,没有收到任何邮件,浏览器或logs / development.log中没有显示错误。
在服务器输出中,我看到HTML版本已呈现,我看到有关电子邮件的信息,它看起来都很笨拙。由于我没有错误,我不知道如何继续。
答案 0 :(得分:2)
处理其他问题时,我正在编辑application.rb。我想我需要重新启动服务器才能看到这些变化。突然,电子邮件在应用内部发挥作用。
D'哦!我没有意识到(菜鸟错误)我需要重新启动应用程序的服务器以查看我昨天在environment.rb中放置的电子邮件配置。我从来没有尝试过那种原因。
我现在看到,只有在服务器启动时才运行其他组件。所以,当然,当我启动控制台时,它会运行所有初始化程序,因此电子邮件配置可见,并且电子邮件已发送。
所以答案是,重启你的服务器,愚蠢。好吧,无论如何,至少它现在正在工作......我会把它带到我能得到的地方!
答案 1 :(得分:0)
我首先将您的电子邮件命令移动到WorkRequest模型作为'after_create'操作
after_create :send_init_email
def send_init_email
PersonMailer.deliver_work_request_init_email(self)
end
查看是否有效,或者aleast为您提供更好的错误信息。