加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 在Rails中创建新模型实例时发送电子邮件的最佳

发布时间:2020-12-16 21:12:14 所属栏目:百科 来源:网络整理
导读:我有一个具有以下模型的应用程序:用户,任务和分配.每个分配属于用户和任务(或者换句话说,通过分配将任务分配给用户). 用户完成任务后,分配将标记为完成,应用程序会立即创建新的分配(或者换句话说,将任务分配给其他人). 创建此新作业后,我想立即向新受让人发
我有一个具有以下模型的应用程序:用户,任务和分配.每个分配属于用户和任务(或者换句话说,通过分配将任务分配给用户).

用户完成任务后,分配将标记为完成,应用程序会立即创建新的分配(或者换句话说,将任务分配给其他人).

创建此新作业后,我想立即向新受让人发送电子邮件.我知道我可以通过以下三种方式之一做到这一点:

>在我的控制器中明确发送电子邮件.
>在Assignment模型的回调中发送电子邮件.
>在Assignment模型上创建一个观察者,并在after_create中发送电子邮件.

人们认为哪种选择最好,为什么? #1对我来说似乎很糟糕,因为我不想记得在每个可能完成作业的动作中发送它.我听说有几个人说Rails观察员很糟糕,应该避免,但我不确定他们是不是我应该信任的人.还有其他意见吗?

解决方法

你是对的,第一种方式不是一个好方法.出于几个原因,观察者是我的首选方式.

首先,如果您使用TDD(测试驱动开发),您可以关闭观察者以更纯粹地测试模型,而不会在每次创建时触发邮件程序创建.然后你可以单独测试邮件和观察者.

其次,分离回调的想法创造了更清晰的代码.回调并不是模型的一部分,它们是事件.您的模型包含运行自身所需的函数和属性,回调(由观察者实现)是单独的事件处理程序.

也就是说,我不认为你的第二个选择是“坏”或不太专业.无论哪种方式都可以在模型级别工作,而不是控制器或(甚至更糟糕的)视图.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读