Вы можете смоделировать Task
, чтобы иметь due_date
. Но если задача повторяется, due_date
будет нулевым, и вы будете использовать поле recurrence
для вычисления next_due_date
. recurrence
будет строковым полем, содержащим разборную строку типа «вторник» (для еженедельных) или «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
Это может или не может быть "лучшим способом" для вас, в зависимости от ваших требований и будущих потребностей модели.