2012年9月18日火曜日

バリデーションチェックのエラー表示場所

railsのscaffoldで生成したビューファイルにはエラーメッセージを表示する場所があります。

ここの部分ですね。
  <% if @admin_client.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@admin_client.errors.count, "error") %> prohibited this admin_client from being saved:</h2>

      <ul>
      <% @admin_client.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>
ちなみに、このエラーメッセージ表示部をpartialで切り出して、@adminのところを引数で渡すようにすると、変更が容易になりました。

上記のメッセージ部とは別に、エラーが出ると、該当の項目が赤くなります。
しかし、この赤い部分は見た目的にもイマイチで、レイアウトが崩れることもあるので、
非表示する場合の設定がこちら。
config/application.rb に、下記を追加します。
config.action_view.field_error_proc = Proc.new {|html_error, instance| "#{html_error}".html_safe }

【参考】
http://techlog.knocking.co.jp/archives/1161

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。