0

rais2.3.2プロジェクトをrails3にアップグレードしています

エラー:


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)そして私はあなたの'sent'メソッドをRails3の方法で書き直します:


    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を作成します:sent.text.erbとsent.html.erb

于 2013-03-27T22:49:27.733 に答える