【Rails】独自バリデーションを追加する方法

Ruby on Railsで独自バリデーションを追加する方法を紹介します。

【Rails】独自バリデーションを追加する方法

一般的なバリデーションはモデルに以下のような各カラムのバリデーションを追加していきます。

 

独自バリデーションを追加する場合は、以下の「validate :〇〇」のように、独自バリデーションの処理をprivateに書き、そのメソッド名を追記するだけです。

例えば新規登録時のみバリデーションしたい場合は、「return false unless new_record?」を処理のはじめに追記することで新規登録か更新かを判定できます。

新規登録でない場合はfalseを返し、バリデーションは実行されません。

ちなみにバリデーションのトリガは「create」、「update」、「save」メソッドで発動されます。

また、valid?(invalid?)メソッドを使って、手動でトリガすることもできます。

参考: