Ruby on rails 如何在ActionMailer 3.2.11中发送消息后获取mailer方法?

Ruby on rails 如何在ActionMailer 3.2.11中发送消息后获取mailer方法?,ruby-on-rails,ruby-on-rails-3,actionmailer,Ruby On Rails,Ruby On Rails 3,Actionmailer,我正在尝试记录我们系统发送的所有电子邮件。我已经在ActionMailer::Base中设置了一个回调,使用此博客作为参考: 我试图保存一条记录,记录所使用的actionmailer对象和消息传递后调用的方法。我可以访问邮件和邮件对象 include AbstractController::Callbacks after_filter :log_email def log_email klass = ActiveSupport::Inflector.underscore(self.cla

我正在尝试记录我们系统发送的所有电子邮件。我已经在ActionMailer::Base中设置了一个回调,使用此博客作为参考:

我试图保存一条记录,记录所使用的actionmailer对象和消息传递后调用的方法。我可以访问
邮件
邮件
对象

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

然而,到Rails3为止,模板名称还没有公开,我还没有找到访问正在调用的mailer方法的方法。如何找到已调用的邮件程序操作?

您可以使用
操作\u 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