如何在ActionMailer 3.2.11中发送消息后获取邮件程序方法?

时间:2013-09-16 21:50:07

标签: ruby-on-rails ruby-on-rails-3 actionmailer

我正在尝试记录我们系统发出的所有电子邮件。我使用此博客在ActionMailer :: Base中设置了一个回调参考:http://www.javier-julio.com/2013/03/29/using-callbacks-in-rails-3-actionmailer

我正在尝试保存记录所记录的actionmailer对象的记录以及在传递消息后调用的方法。我可以访问mailmessage个对象。

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开始不公开,我无法找到访问被调用的邮件程序方法的方法。如何找到已调用的邮件程序操作?

1 个答案:

答案 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