我有2个型号,用户和电子邮件
用户创建后我有一个 after_create 回调,它会向用户的电子邮件地址发送一封确认电子邮件。
user.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
现在我想要的是一个在每次交付后记录确认电子邮件信息的操作。
您可以为此建议解决方法或回调吗?
任何变通办法都将受到赞赏
答案 0 :(得分:1)
你总是可以在ActionMailer
课程中写回调,this guide解释所有这些。
如果你正在使用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