我正在创建一个简单的待办事项应用程序,其中有两种类型的任务。
1) 常规任务 - 这些有截止日期 2) 重复任务 - 这些在指定日期作为提醒弹出。它们可以创建为每周或每月提醒。如果创建一个星期,它将在每个星期(在一周的指定日期)弹出。同样对于一个月,它需要指定星期和日期。
模拟这种情况的最佳方法是什么?
我正在创建一个简单的待办事项应用程序,其中有两种类型的任务。
1) 常规任务 - 这些有截止日期 2) 重复任务 - 这些在指定日期作为提醒弹出。它们可以创建为每周或每月提醒。如果创建一个星期,它将在每个星期(在一周的指定日期)弹出。同样对于一个月,它需要指定星期和日期。
模拟这种情况的最佳方法是什么?
我将有两列用于提醒对象 - remind_at
(日期)和repeat_frequency
(用于识别不同再次发生的东西)。这样,您可以remind_at
快速索引该列并通过它进行搜索。每次向用户显示提醒时,它都会查看repeat_frequency
- 如果它包含重复的指示,则设置remind_at
为下一个日期,如果没有,则删除/存档提醒。
您可以为 a 建模Task
以拥有due_date
. 但是,如果一个任务是重复的,due_date
将为 null 并且您将使用该recurrence
字段来计算next_due_date
. recurrence
将是一个包含可解析字符串的字符串字段,例如“tuesday”(每周)或“17”(每月的天数)。
def next_due_date
if due_date
due_date
else
# compute next due date using the 'recurrence' field and today's date
end
end
这对您来说可能是也可能不是“最佳方式”,具体取决于您的要求和模型的未来需求。