Как поделиться методами между ActionMailers - PullRequest
1 голос
/ 10 ноября 2011

У меня есть два почтовых программы:

class Mailer1 < ActionMailer::Base
  def mail
    if check_something?
    end
  end

  private

  def check_something?
  end
end


class Mailer2 < ActionMailer::Base
  def another_mail
    if check_something?
    end
  end

  private

  def check_something?
  end
end

(я понимаю, что могу использовать помощников для просмотра реальных почтовых шаблонов, но как я могу заставить его работать для вспомогательных методов контроллера - как ActionMailersпроисходит от абстрактного контроллера в эти дни.)

Итак, где я могу объявить check_something? и как сделать его доступным для обоих моих почтовиков?

1 Ответ

1 голос
/ 10 ноября 2011

Просто создайте базовый класс, как вы получаете по умолчанию с ApplicationController для ваших контроллеров http:

class AppMailer < ActionMailer::Base
  protected
  def check_something?
  end
end

class Mailer1 < AppMailer
  def mail
    if check_something?
    end
  end
end


class Mailer2 < AppMailer
  def another_mail
    if check_something?
    end
  end
end
...