Rails 3.2无法干掉这个Action Mailer

时间:2016-02-18 02:52:06

标签: ruby-on-rails actionmailer

我需要在我的UserMailer中的大约15个动作邮件程序方法中使用名为@template_name的实例变量用于营销目的。我不想四处乱扔东西:

@template_name  = __callee__

在我的所有方法中,或在视图中删除字符串,我想尽可能将其作为DRY。创建一个可以访问方法名称而不是本身的回调似乎很有挑战性,即无论它触发什么方法,都会返回“do_thing”。

before_action :do_thing
def do_thing
  __callee__ # old way was __method__ 
end

非常欢迎任何建议!

1 个答案:

答案 0 :(得分:1)

查看this帖子。

如果我理解正确,您可以简单地执行以下操作:

Rails> 4

before_action { @template_name = action_name }

Rails< 4

  include AbstractController::Callbacks
  before_action { @template_name = action_name }