0

我有 2 个模型,用户电子邮件

创建用户后,我有一个after_create回调,它向用户的电子邮件地址发送确认电子邮件。

用户.rb

after_create :create_confirmation_email

private

    def creation_confirmation_email
      UserMailer.account_create_confirmation(self).deliver
    end

上面的creation_confirmation_email连接到mailer/user_mailer.rb中的方法

user_mailer.rb

def account_create_confirmation(user)
    I18n.locale = 'pt'
    @user = user

    mail(from: 'no-reply@miigo.com.br', to: @user.email, subject: 'Bem-vindo ao Miigo') do |format|
      format.text
      format.html
    end
  end

我的电子邮件模型具有以下属性:

reply_to: string
first_name: string
last_name :string
subject: string

现在我想要的是在每次交付后记录确认电子邮件信息的操作。

你能建议一个解决方法或回调吗?

任何解决方法将不胜感激

4

1 回答 1

1

ActionMailer你总是可以在你的课堂上写一个回调,本指南解释了所有这些。

如果您使用的是 Rails 3,IIRC,您可以ActionMailer通过包含AbstractController::Callbacks.

就像是:

class MyMailer < ActionMailer::Base
  include AbstractController::Callbacks

  after_filter :audit_email

  def account_create_confirmation(user)
    @subject = 'Bem-vindo ao Miigo'
    # ...
  end

  def audit_email
    EmailAudit.create(subject: @subject, ...)
  end
end
于 2013-08-15T08:32:22.007 回答