我正在制作一个简单的任务管理器,除了completed:boolean
列之外,我还有一个completed_time:datetime
列,当用户将任务标记为已完成时,我需要存储时间。
当用户检查任务是否已完成时,有一个解决方案用hidden_field
JS 填充当前时间,但我认为这不是一个好主意,必须在控制器或模型级别完成。
所以,现在我的Task
模型中有这个:
before_update :add_completed_time
.
.
.
def add_completed_time
if self.completed?
self.completed_time = DateTime.now
end
end
但是它completed_time
每次都会更新列,当任务在完成后更新时(例如,当我将它标记为时archived
)。
当任务被标记为已完成时,我如何才能调用此方法?
谢谢!