如何在ActionMailer的after_actionfilter中获取操作的名称
在下面的课程中,如何在after_action
回调add_mandril_headers
旁边获取当前操作名称(即email_confirmation
, password_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