我期待让我的用户配置他们的电子邮件通知频率。
我想为他们提供典型的选择:直接电子邮件,每日和每周摘要
¿在rails 3应用程序中构建它的最佳策略是什么?
全部谢谢!
答案 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
现在,您必须分别处理所有三种频率偏好:
每当发生事件时,请找到所有喜欢即时事件电子邮件通知的用户,并立即将其发送给他们。
在每周结束时,查找当周发生的所有事件:
start_date = Date.today.beginning_of_week
将他们的描述合并到一封电子邮件中,然后找到所有喜欢每周活动电子邮件通知的用户并将其发送给他们。
在每个月末,查找当月发生的所有事件:
start_date = Date.today.beginning_of_month
将他们的描述合并到一封电子邮件中,然后找到所有喜欢每月活动电子邮件通知的用户并将其发送给他们。