rails应用程序中的电子邮件频率配置策略

时间:2011-06-11 17:25:36

标签: ruby-on-rails email digest

我期待让我的用户配置他们的电子邮件通知频率。

我想为他们提供典型的选择:直接电子邮件,每日和每周摘要

¿在rails 3应用程序中构建它的最佳策略是什么?

全部谢谢!

1 个答案:

答案 0 :(得分:5)

您的email_frequency_preference表格上可以有一个users字符串列,用于存储他们的偏好。然后,您可以通过电子邮件频率偏好找到用户:

User.find_all_by_email_frequency_preference    # :instantly | :weekly | :monthly

我还建议使用名称和说明的Event模型来表示您希望通知用户的可能发生的事件。然后,您可以按创建日期查找事件:

Event.find :created_at => start_date..Date.today

现在,您必须分别处理所有三种频率偏好:

  1. 每当发生事件时,请找到所有喜欢即时事件电子邮件通知的用户,并立即将其发送给他们。

  2. 在每周结束时,查找当周发生的所有事件:

    start_date = Date.today.beginning_of_week
    

    将他们的描述合并到一封电子邮件中,然后找到所有喜欢每周活动电子邮件通知的用户并将其发送给他们。

  3. 在每个月末,查找当月发生的所有事件:

    start_date = Date.today.beginning_of_month
    

    将他们的描述合并到一封电子邮件中,然后找到所有喜欢每月活动电子邮件通知的用户并将其发送给他们。