[Rails] 1つの項目に必須、その他バリデータをつける際の注意
移転しました。
よくフォームを作成していると、1つの項目に必須入力と長さチェックなどのバリデータをかけることになる。
しかし単純に
validates_presence_of :family_name_kana, :message=>ERR_REQUIRE validates_size_of :family_name_kana, :maximum => 30, :too_long=>"は30" + ERR_LENGTH
とやってしまうと、まったく入力していない場合、必須と、長さのエラーメッセージが両方でてしまいよろしくない。
そんな時は以下のようにかくとよい。
validates_presence_of :family_name_kana, :message=>ERR_REQUIRE validates_size_of :family_name_kana, :maximum => 30, :too_long=>"は30" + ERR_LENGTH, :if => Proc.new { |u| !u.family_name_kana.blank?}
:if をつけて、blankする。これで入力があった時だけ、長さチェックを行う事になる。