Help us understand the problem. What is going on with this article?

Railsの条件付きvalidationは注意が必要だと思った話

Railsの条件付きvalidation

Railsでは、特定の条件のときのみvalidationをかけたい!ということができます。
https://railsguides.jp/active_record_validations.html#条件付きバリデーション

今回起こったできごと

条件付きvalidationを使った際に、かなり特定の部分の条件を指定してしまっていました。
イメージ的には「このステータスかつ、このフラグが立っているとき」みたいな・・・

時は流れて半年後。

想定しているようにvalidationがかからない!!!

処理の変更をした時にいつの間にかvalidationをかけるためのフラグをtrueにする部分を削除してしまっていました。

学んだこと

validationの条件として書くべき部分と、処理中で制御する部分が明確になるように、条件付きvalidationにする場合は

  • 確固たる条件がある場合
  • 処理に依存しないように書く

必要があるんじゃないかなと思いました。
だいたい、validationはmodelの上の方に書くと思いますし、後からコードを読んだり違う人がみる場合は見落としがちです。
→なんかvalidationかかるときとかからないときとあるぞ?🤔となる

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away