Я использую Rails 5.
У меня есть модель Affiliate
с логическим атрибутом email_notifications_on
.
Я создаю довольно надежную систему электронной почты для филиалов и могу не выясните, где лучше всего проверить, есть ли у партнера уведомление по электронной почте, прежде чем доставить письмо.
Большинство моих электронных писем отправляются с заданий Resque BG, несколько других - с контроллеров.
Вот пример того, как я проверяю статус подписки на задании BG:
class NewAffiliateLinkEmailer
@queue = :email_queue
def self.perform(aff_id)
affiliate = Affiliate.find(aff_id)
if affiliate.email_notifications_on?
AffiliateMailer.send_links(affiliate).deliver_now
end
end
end
Кажется, что написание if affiliate.email_notifications_on?
в 10+ областях - неправильный способ это, особенно если мне нужно другое условие, которое будет выполнено в будущем. Или это нормально?
Я думал, что, возможно, какой-то обратный вызов в AffiliteMailer
сработает, но видел, как многие люди советуют не использовать бизнес-логи c в Mailer.
Любые мысли / советы будут оценены.