我正在尝试记录我们系统发出的所有电子邮件。我使用此博客在ActionMailer :: Base中设置了一个回调参考:http://www.javier-julio.com/2013/03/29/using-callbacks-in-rails-3-actionmailer。
我正在尝试保存记录所记录的actionmailer对象的记录以及在传递消息后调用的方法。我可以访问mail
和message
个对象。
include AbstractController::Callbacks
after_filter :log_email
def log_email
klass = ActiveSupport::Inflector.underscore(self.class.name)
SystemEmail.create(user: User.find_by_email(message.to), key: "#{klass}.#{message.template_name}" )
end
然而,template_name从Rails3开始不公开,我无法找到访问被调用的邮件程序方法的方法。如何找到已调用的邮件程序操作?
答案 0 :(得分:2)
您可以使用action_name
,因此您的方法将是:
def log_email
klass = ActiveSupport::Inflector.underscore(self.class.name)
SystemEmail.create(user: User.find_by_email(message.to), key: "#{klass}.#{action_name}" )
end