0

私は単純なタスクマネージャーを作成しています。列のほかに、ユーザーがタスクを完了としてマークしたときに、時間を保存する必要が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)。

タスクが完了としてマークされたときにのみ、このメソッドを呼び出すにはどうすればよいですか?

ありがとう!

4

1 に答える 1