Rails - Action Mailer约定

时间:2012-01-10 01:29:36

标签: ruby-on-rails actionmailer delayed-job

考虑在我的项目中实施(一点点)更智能的通知系统。 我想做的是在一定时间范围内向用户发送一些新的假设私人消息一次,而不是每次收到新消息。 当然不会没有 delayed_job ,但在这里我有一些关于ActionMailer的问题:

  1. 您可以在Mailer课程中添加多少逻辑?
  2. 我可以在Mailer类方法中执行数据库查询吗?

2 个答案:

答案 0 :(得分:5)

因此,您将发送系统中发生的各种“通知”的电子邮件“摘要”。

我建议您移动现在使用ActionMailer向Notification类发送电子邮件的逻辑。对于notified(或类似),标志将设置为false,这将保留通知。

然后,每天(或类似)运行一份工作,向需要收到通知的人发送摘要电子邮件。

答案 1 :(得分:2)

我建议将ActionMailer逻辑保持在最低限度:只需渲染电子邮件并进行实际交付。

是的我意识到这会使delayed_job逻辑稍微复杂一些,因为你不能只发送一封延迟的电子邮件,但它保留了应该存在的逻辑。