Railsの条件付きvalidation
Railsでは、特定の条件のときのみvalidationをかけたい!ということができます。
https://railsguides.jp/active_record_validations.html#条件付きバリデーション
今回起こったできごと
条件付きvalidationを使った際に、かなり特定の部分の条件を指定してしまっていました。
イメージ的には「このステータスかつ、このフラグが立っているとき」みたいな・・・
時は流れて半年後。
想定しているようにvalidationがかからない!!!
処理の変更をした時にいつの間にかvalidationをかけるためのフラグをtrueにする部分を削除してしまっていました。
学んだこと
validationの条件として書くべき部分と、処理中で制御する部分が明確になるように、条件付きvalidationにする場合は
- 確固たる条件がある場合
- 処理に依存しないように書く
必要があるんじゃないかなと思いました。
だいたい、validationはmodelの上の方に書くと思いますし、後からコードを読んだり違う人がみる場合は見落としがちです。
→なんかvalidationかかるときとかからないときとあるぞ?🤔となる