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 setting, this is very redundant. I would like to DRY this up by having a before_filter that works for all mailers.
class UserMailer < ActionMailer::Base before_filter :check_if_we_can_mail_the_user .... private def check_if_we_can_mail_the_user if current_user.mail_me == true #continue else Do something to stop the controller from continuing to mail out end end end
Possible? Has anyone done something like this? Thanks
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With