Перед фильтром в действии mailer Rails 3


то, что мне нужно:

Что-то похожее на before_filter в ActionMailer в Rails 3.

Проблема:

Я работаю на Rails 3 и хочу иметь before_filter в ActionMailer. Проверил apiactionmailer и узнал о обратных вызовах before_action и after_action. При реализации он выдает ошибку:

NoMethodError: undefined method `before_action' for Notifier:Class

Позже узнал, что нет перед вызовом действия для Rails 3 от этого post

Нет ли какого-нибудь крючка или драгоценного камня, чтобы у нас было что-то похожее на before_filter в Rails 3.

Пожалуйста, помогите. Большое Спасибо!!

1 7

1 ответ:

Это может быть достигнуто путем включения AbstractController:: Callbacks. Это имитирует изменение в Rails 4, которое, кроме комментариев и тестов, просто включало обратные вызовы.

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

Ссылка - Как добавить before_filter в UserMailer, который проверяет, нормально ли отправлять пользователю почту?