ウェブサイトなどに登録するページを作る時、入力フォームのほかに、利用規約に同意してもらうことを確認するものを作らなければならない。
そのとき、一般的にチェックボックスを用いるが、これがチェックされているかどうかをvalidateで確認したい。
そのためには、
- validates_acceptance_of
- form_tag
- check_box
- submit_tag
を利用すればよい。
入力されたデータが保存されるモデルで、
validates_acceptance_of :accept
を記述する。:acceptは名前は何でもよくて、実際にカラムが無くても大丈夫。
ビューでは、例えば
<% form_tag :action=>"pre_signup_confirm",:method=>"POST" do -%> <%= text_field :user, :mailaddress %><br /> 利用規約<br /> ・・・・ <br /> <%= check_box :user, :accept %>利用規約に同意する<br /> <%= submit_tag("確認する") %> <% end -%>
と記述する。
ここで、:acceptはモデルで記述した名前と同じにする。
:userというのは、コントローラでフォームに入力されたデータを保存する時に用いているインスタンス変数と同じ名前にする。
これで、'確認する'ボタンを押した時、チェックボックスにチェックが入ってなかったらエラーメッセージが出るようになる。
Railsって便利だな。
FC2Blog - 現在アクセスが集中していますを参考にさせてもらった。
お読み頂きありがとうございます。
少しでもお役に立てたらクリックお願いします↓。