我正在构建一个Rails 5应用,需要发送邀请和通知等电子邮件...
模特:Invite.rb, Notification.rb
目前的建议/最佳做法是针对邮件应用程序实施邮件应用程序(.deliver)的位置?
应该使用after_create
这样的模型回调吗?
由于
答案 0 :(得分:0)
不建议在ActiveRecord回调函数中传递邮件。在更新记录时,这可能会导致各种奇怪的情况,然后电子邮件会意外发送给用户。
最佳位置取决于场景。
方案1 :当您的应用中的某个端点被点击时,会触发一封电子邮件。
解决方案:可以在控制器或service object或interactor中触发该触发,这取决于有意义的抽象。另外,当通过请求发生这种情况时,我们希望快速响应。建议在ActionMailer中使用deliver_later
方案2 :电子邮件是通过rake任务或脚本触发的
解决方案:可以直接在rake任务或脚本中包含电子邮件