古いバージョンのドキュメントです。最新のバージョンはRails7.0.0

Railsドキュメント(v6.0.2.1)

ブロックに対してのバリデーション

説明

ブロックに対してのバリデーション

使い方

validates_each(キー名, [,  オプション])

オプション

オプション 説明
:on 実行するタイミング
:allow_nil nilをスキップ
:allow_blank nilや空文字をスキップ
:if バリデーションする条件
:unless バリデーションしない条件

validates_each :first_name, :last_name, allow_blank: true do |record, attr, value|
  record.errors.add attr, 'starts with z.' if value.to_s[0] == ?z
end

ソースコード