MailerFormError:Class的未定义方法`deliver_sent' [英] undefined method `deliver_sent' for MailerFormError:Class

查看:112
本文介绍了MailerFormError:Class的未定义方法`deliver_sent'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在将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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆