如何在ActionMailer的after_actionfilter中获取操作的名称

在下面的课程中,如何在after_action回调add_mandril_headers旁边获取当前操作名称(即email_confirmationpassword_reset )?

 class UserMailer < ActionMailer::Base after_action :add_mandril_headers def email_confirmation(user) mail(..) end def password_reset(user) mail(..) end private # how to get the action name? def add_mandrill_headers headers['X-MC-Tags'] = [mailer_name, action_name].join('_'); end end 

结果是action_name返回当前的邮件程序操作名称。 我根据ActionController有一个类似的方法尝试了它。

谢谢@HarishShetty!

正如您所提到的, action_name适用于所有控制器,因为它inheritance自ApplicationController

例如,我使用的是public_activity,并希望在我的控制器中进行一些简化:

 class SiteDetailsController < ApplicationController after_action :track_activity, only: [:create, :update, :destroy] # ... private def track_activity @site_detail.create_activity action_name, owner: current_user end end