私は単純なタスクマネージャーを作成しています。列のほかに、ユーザーがタスクを完了としてマークしたときに、時間を保存する必要がcompleted:boolean
ある列があります。completed_time:datetime
ユーザーチェックタスクが完了したときに、JSによって現在の時刻を入力して埋めるソリューションがありますが、hidden_field
これは良い考えではなく、コントローラーまたはモデルレベルで実行する必要があります。
だから、今私は私のTask
モデルにこれを持っています:
before_update :add_completed_time
.
.
.
def add_completed_time
if self.completed?
self.completed_time = DateTime.now
end
end
ただしcompleted_time
、完了後にタスクが更新されるたびに列が更新されます(たとえば、 としてマークするとarchived
)。
タスクが完了としてマークされたときにのみ、このメソッドを呼び出すにはどうすればよいですか?
ありがとう!