Ruby
Rails

update_all を使った時に、 updated_at を明示的に更新するかしないか問題

More than 1 year has passed since last update.

問題提起

update_all を使用すると updated_at が更新されません。
そのため、 :arrow_down: のような実装をしていることがあります。

User.update_all(status: 0, updated_at: Time.current)

方針

updated_at を「明示的に更新する」か「更新しない」のどちらの方針が良いか考えました。

方針1:明示的に更新する

明示的に更新をする場合、不具合の調査がしやすくなるメリットがあります。ただし、update_all を使っている全ての箇所で updated_at を更新しないと、かえって不具合の調査の難易度が上がります。

方針2:更新しない

不具合の調査時に、データが最後に更新されたのがいつか分からなくなるので、解決の糸口となるヒントが減ります。

結論

update_all を使っている全ての箇所で updated_at を更新するように出来る自信が無いので「方針2:更新しない」が良いと考えています。