Rails – 入力整合性~text_field

概要

Railsのバリデーションには入力の整合性チェックの機能があり、以下のような2つの入力フィールドの内容が同じかどうかをチェックする。


手順

設定

  • SimpleUserモデルのname属性に対してフォーム入力する
  • フォームではnameの入力欄と再確認用の入力欄の2つを表示する
  • フォーム送信後、2つの入力欄の値が等しいかどうかをバリデーションで確認する

ルーティング

  • simple_usersコントローラーのconfirm_nameアクションで入力フォームを表示
  • フォームからのPOSTをconfirm_name_processアクションで受け取って処理

モデルの生成

:name属性1つだけを持つSimpleUserモデルを構成する

マイグレート後

ビュー

入力フィールドと確認フィールドを準備する。確認フィールドは入力フィールドの名前に_confirmationポストフィックスを付ける(入力フィールドが:nameの場合、:name_confirmation)。

モデル

Userモデルで整合性のみ検証させる。

コントローラー

confirm_nameアクションでSimpleUserインスタンスを準備してフォームを表示し、confirm_name_processでフォームから受け取ったパラメーターの整合性をチェック。

実行結果

:name:name_confirmation"aaa""aaa"のときは、valid? == trueでエラーメッセージは空。

"aaa""bbb"のときは、valid? == falseでエラーメッセージがセットされる。

"aaa"""のとき(:name_confirmationに入力しないとき)は、valid? == falseでエラーメッセージがセットされる。

""""のとき(どちらも入力しないとき)は、valid? == trueでエラーメッセージは空。

 

コメントを残す

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