我需要的是:
类似于Rails 3中ActionMailer中的before_filter。
问题:
我正在研究Rails 3,并希望在ActionMailer中有一个before_filter。检查了actionmailer api并了解了before_action和after_action回调。实施时,它会给出错误:
NoMethodError: undefined method `before_action' for Notifier:Class
后来了解到此post
之前没有针对Rails 3的操作调用没有任何钩子或宝石,所以我们可以像Rails 3中的before_filter类似。
请帮忙。非常感谢!!
答案 0 :(得分:11)
可以通过包含AbstractController :: Callbacks来实现。这模仿了Rails 4的变化,除了评论和测试之外,还包括Callbacks。
class MyMailer < ActionMailer::Base
include AbstractController::Callbacks
after_filter :check_email
def some_mail_action(user)
@user = user
...
end
private
def check_email
if @user.email.nil?
message.perform_deliveries = false
end
true
end
end
参考 - How to add a before_filter in UserMailer which checks if it is OK to mail a user?