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

dgi*_*rez 3 email ruby-on-rails digest

我期待着允许我的用户配置他们的电子邮件通知频率.

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

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

谢谢大家!

Mat*_*ira 5

您可以email_frequency_preferenceusers表上放置一个存储其首选项的字符串列.然后您可以通过电子邮件频率偏好找到用户:

User.find_all_by_email_frequency_preference    # :instantly | :weekly | :monthly
Run Code Online (Sandbox Code Playgroud)

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

Event.find :created_at => start_date..Date.today
Run Code Online (Sandbox Code Playgroud)

现在,您必须分别处理所有三个频率首选项:

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

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

    start_date = Date.today.beginning_of_week
    
    Run Code Online (Sandbox Code Playgroud)

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

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

    start_date = Date.today.beginning_of_month
    
    Run Code Online (Sandbox Code Playgroud)

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