我有一个具有以下型号的应用程序:User
、Task
和Assignment
。每个分配belongs_to
一个用户和一个任务(或者换句话说,一个任务通过一个分配分配给一个用户)。
一旦用户完成了一项任务,该任务就会被标记为完成,并且应用程序会立即创建一个新任务(或者换句话说,将任务分配给其他人)。
创建此新作业后,我想立即向新受让人发送电子邮件。我知道我可以通过以下三种方式之一来做到这一点:
- 在我的控制器中明确发送电子邮件。
- 在分配模型的回调中发送电子邮件。
- 在 Assignment 模型上创建一个观察者并发送电子邮件
after_create
。
人们认为哪些选项最好,为什么?#1 对我来说似乎很糟糕,因为我不想记住在每个可能完成作业的操作中发送它。我听过一些人说 Rails 观察者很糟糕,应该避免,但我不确定他们是否是我应该信任的人。还有其他意见吗?