How to add a before_filter in UserMailer which checks if it is OK to mail a user?

前端 未结 4 878
余生分开走
余生分开走 2021-01-17 07:50

is there a global way I can write a before_filter for my user mailer, that checks to see if the user has emails disabled? Right now every mailer I have checks the user\'s se

4条回答
  •  忘掉有多难
    2021-01-17 08:12

    Rails 4 already has before_filter and after_filter callbacks. For Rails 3 users, it's surprisingly simple to add them: just include AbstractController::Callbacks. This mimics the change to Rails 4 which apart from comments and tests, just included 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?
          mail.perform_deliveries = false
        end
        true
      end
    
    end
    

提交回复
热议问题