2011年10月17日月曜日

バリデーションによる入力規制01 事始め

Railsのバリデーションは非常に簡単。modelクラスに以下のように実装する。
  validates :USER_ID,#入力制限を加えたいカラム
    :presence => true,#Not Null制約
    :uniqueness => true,#一意性制約
    :length => { :minimum => 3, :maximum =>30 }#桁数範囲制約
viewに以下を実装する。
<% if @usr.errors.any? %>
 <div is ="error_explanation">
  <h2><%= pluralize(@usr.errors.count, "個") %> のエラーが存在します。</h2>
  <ul>
   <% @usr.errors.full_messages.each do |msg| %>
    <li><%= msg %></li>
   <% end %>
  </ul>
 </div>
<% end %>

以上で上の絵のようなチェックを走らせる事が出来る。簡単。
但し以下の問題点がある。
1.エラーメッセージが英語
2.カラム付近へエラーが出ていない。
3.エラーのカラムが分かりにくい(カラム周囲が色が変われば良い)
4.規約に同意、などといった新規のみチェック等が制御できていない。
明日からは、上記の問題を解決していこうと思う。

0 件のコメント:

コメントを投稿