Rails – バリデーターのカスタマイズ

概要

モデルの検証を行うバリデーターを自作するのにいくつかの方法がある。

  • バリデーションメソッドをモデルで定義
  • ActiveModel::Validatorのサブクラスを定義
  • ActiveModel::EachValidatorのサブクラスを定義

バリデーションメソッド

検証したいモデルの中でカスタムメソッドを定義し、validate(単数形)でメソッドを呼び出す。

以下のコードは、:name属性と:email属性を持つUserモデルをカスタムメソッドにより検証する例。

 

  • カスタムメソッドname_or_email_presentsを定義
  • メソッドでは、:name:emailの両方とも空の場合にエラーを追加
  • モデルでvalidateによってメソッドをコールバックとして追加(validateは単数形)

ActiveModel::Validator

ActiveModel::EachValidator

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です