Rails 5中的最佳实践,用于调用ActionMailer

时间:2017-06-10 23:23:43

标签: ruby-on-rails ruby ruby-on-rails-5 actionmailer

我正在构建一个Rails 5应用,需要发送邀请和通知等电子邮件...

模特:Invite.rb, Notification.rb

目前的建议/最佳做法是针对邮件应用程序实施邮件应用程序(.deliver)的位置?

应该使用after_create这样的模型回调吗?

由于

1 个答案:

答案 0 :(得分:0)

不建议在ActiveRecord回调函数中传递邮件。在更新记录时,这可能会导致各种奇怪的情况,然后电子邮件会意外发送给用户。

最佳位置取决于场景。

方案1 :当您的应用中的某个端点被点击时,会触发一封电子邮件。

解决方案:可以在控制器或service objectinteractor中触发该触发,这取决于有意义的抽象。另外,当通过请求发生这种情况时,我们希望快速响应。建议在ActionMailer中使用deliver_later

方案2 :电子邮件是通过rake任务或脚本触发的

解决方案:可以直接在rake任务或脚本中包含电子邮件