0

我正在将 rais 2.3.2 项目升级到 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

在模型和 Actionmailer::Base 中也没有方法 'deliver_sent' :(

在控制器中使用它的代码:



    @msg = {}
    @msg["errors"] = @lead.errors
    @msg["params"] = params
    MailerFormError.deliver_sent(@msg)

Actionmailer 版本:actionmailer (3.2.11)

我怎么解决这个问题?

4

2 回答 2

0

发送电子邮件在 2.3 和 3.2 之间发生了很大变化。这是一个基本的操作方法:http: //xyzpub.com/en/ruby-on-rails/3.2/action_mailer.html

于 2013-03-24T22:00:51.833 回答
0

1) 对于 Rails 3,要在控制器中发送通知,我会这样写:


    MailerFormError.sent(@msg).deliver

2)我用 Rails 3 方式重写你的“发送”方法:


    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

于 2013-03-27T22:49:27.733 回答