У меня есть приложение со следующими моделями: User
, Task
и Assignment
. Каждое Назначение belongs_to
Пользователь и Задача (или, другими словами, Задача назначается Пользователю посредством Назначения).
Как только пользователь завершает задачу, назначение помечается как выполненное, и приложение немедленно создает новое назначение (или, другими словами, назначает задачу кому-то еще).
Сразу после создания этого нового Назначения я хочу отправить электронное письмо новому уполномоченному. Я знаю, что могу сделать это одним из трех способов:
- Явно отправьте письмо на мой контроллер.
- Отправьте электронное письмо в обратном вызове для модели Назначения.
- Создайте наблюдателя в модели Назначения и отправьте электронное письмо по адресу
after_create
.
Какой из этих вариантов люди считают лучшим и почему? № 1 кажется мне плохим, потому что я не хочу помнить, чтобы отправлять его при каждом действии, которое может выполнить задание. Я слышал, как пара людей сказала, что наблюдатели на Rails плохие люди, которых следует избегать, но я не уверен, стоит ли им доверять людям или нет. Есть другие мнения?