MailerFormError:Class的未定义方法`deliver_sent' [英] undefined method `deliver_sent' for MailerFormError:Class
问题描述
我正在将rais 2.3.2项目升级到Rails 3
I'm upgrading rais 2.3.2 project to rails 3
错误:
undefined method `deliver_sent' for MailerFormError:Class
Application Trace | Framework Trace | Full Trace
app/controllers/leads_controller.rb:72:in `block in create'
app/controllers/leads_controller.rb:56:in `create'
MailerFormError是我的模型:
class MailerFormError< ActionMailer :: Base
MailerFormError is my model:
class MailerFormError < ActionMailer::Base
在模型和Actionmailer :: Base中也没有方法'deliver_sent':(
It's no method 'deliver_sent' in model and Actionmailer::Base too :(
在控制器中带有其代码:
code with it in controller:
@msg = {}
@msg["errors"] = @lead.errors
@msg["params"] = params
MailerFormError.deliver_sent(@msg)
Actionmailer版本:actionmailer(3.2.11)
Actionmailer version: actionmailer (3.2.11)
我该如何解决这个问题?
How can I solve this problem?
推荐答案
1)for Rails,要在您的控制器中发送您的通知,我这样写:
1) for Rails 3, to send your notification in your controller , I write this :
MailerFormError.sent(@msg).deliver
2)然后用Rails 3方式重写您的发送方法:
2) And I rewrite your 'sent' method in the Rails 3 way :
def sent(msg, sent_at = Time.now)
...
mail(:to => '...', :from => '...', :subject => '...') do |format|
format.html
format.text
end
...
end
最后,我在视图目录app / views / mail_form_error中创建了文本版本和html:send.text.erb和sent.html.erb
Finally I create the text version and html in your view directory app/views/mail_form_error : sent.text.erb and sent.html.erb
这篇关于MailerFormError:Class的未定义方法`deliver_sent'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!