Rails 3.2干不了这个Action Mailer
Rails 3.2 can't dry up this Action Mailer
出于营销目的,我需要在我的 UserMailer 中的大约 15 个操作邮件程序方法中使用一个名为 @template_name 的实例变量。我不想到处乱扔东西,例如:
@template_name = __callee__
在我所有的方法中,或者在视图中删除字符串,我想尽可能地做到 DRY。创建一个可以访问方法名称而不是其本身的回调似乎具有挑战性,即这个 return "do_thing" 不管它从什么方法触发。
before_action :do_thing
def do_thing
__callee__ # old way was __method__
end
非常欢迎任何建议!
查看 this post。
如果我没理解错的话,您可以简单地执行以下操作:
Rails > 4
before_action { @template_name = action_name }
Rails < 4
include AbstractController::Callbacks
before_action { @template_name = action_name }
出于营销目的,我需要在我的 UserMailer 中的大约 15 个操作邮件程序方法中使用一个名为 @template_name 的实例变量。我不想到处乱扔东西,例如:
@template_name = __callee__
在我所有的方法中,或者在视图中删除字符串,我想尽可能地做到 DRY。创建一个可以访问方法名称而不是其本身的回调似乎具有挑战性,即这个 return "do_thing" 不管它从什么方法触发。
before_action :do_thing
def do_thing
__callee__ # old way was __method__
end
非常欢迎任何建议!
查看 this post。
如果我没理解错的话,您可以简单地执行以下操作:
Rails > 4
before_action { @template_name = action_name }
Rails < 4
include AbstractController::Callbacks
before_action { @template_name = action_name }