[Rails5]Model独自のバリデーションを設定する

結論

validate :custom_validation

def custom_validation
errors.add(:tall, "身長は10cm以上500cm以下で入力してください") if tall < 10 && tall > 500
end

ポイント

validatesメソッドでなくvalidateメソッド

:onオプション, :ifオプションなど使える

Validatorクラスでの実装との違い

特定のモデル(Model)のみでのバリデーションの場合は、validateを使ったカスタムバリデーション

複数のモデル(Model)で同じバリデーションを利用する場合は、Validatorクラスを利用したカスタムバリデーション

参考

カスタムバリデーション -RailsGuide-

コメント