Шаблоны разработки Action Mailer: лучше ли иметь один почтовик (например, Notifier) ​​или почтовик для каждой модели (например, UserMailer, ProductMailer)? - PullRequest
3 голосов
/ 02 августа 2011

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

Как правило, для приложения Rails лучше, чтобы я вообще создавал один почтовик дляцелое приложение (например, называя это как Notifier) ​​ИЛИ я создаю почтовые программы для отображения моделей, которым нужна почта.например, UserMailer, ProductMailer и т. д.

Должен ли я по умолчанию выбрать один или несколько, какой подход лучше или когда я использую какой?

Спасибо

Evolve2k


TL; DR

Справочная информация

В прошлых проектах у нас обычно был один почтовик для приложения под названием Notifier, и мы используем его для всехпочту мы отправляем.Я думаю, что отсюда: http://lindsaar.net/2010/1/26/new-actionmailer-api-in-rails-3

например.

class Notifier < ActionMailer::Base
  default :from => "from@example.com"
end

Однако мне кажется, что RailsGuides подразумевает, что вместо этого я должен делать новый почтовик каждый раз, когда у меня есть модель, которая нуждается всделать некоторые действия, связанные с почтой.Насколько я понимаю, так же, как модель имеет контроллеры и представления с одинаковыми именами, так и модель может иметь ActionMailer своего тезки.

Как показано здесь: http://guides.rubyonrails.org/action_mailer_basics.html

например.

class UserMailer < ActionMailer::Base
  default :from => "from@example.com"
end

Как указано выше, какой подход лучше и когда?

1 Ответ

0 голосов
/ 03 августа 2011

Я думаю, что это конкретный случай более общей проблемы, а именно: «Во сколько отдельных файлов / каталогов / пакетов я должен разместить свой код?» Если ваши почтовые программы не отличаются (например, имеют разные заголовки / включаемые файлы, используют разные почтовые серверы и т. Д.), Это во многом зависит от вкуса.

Лично я склоняюсь к тому, чтобы разбить вещи на связанные куски, но если вы не видите в этом никакой пользы, не надо!

...