13

フォームページの上部ではなく、フィールドの横にエラーを表示する方法はありますか?

4

5 に答える 5

8

initializers / my_custom_error_messages.rb

ActionView::Base.field_error_proc = Proc.new do |html_tag, instance|
  errors = Array(instance.error_message).join(',')
  %(#{html_tag}<span class="validation-error">&nbsp;#{errors}</span>).html_safe
end

アップデート:

ラベルなし

ActionView::Base.field_error_proc = Proc.new do |html_tag, instance|
  errors = Array(instance.error_message).join(',')

  if html_tag =~ /^<label/
    html_tag
  else
    %(#{html_tag}<span class="validation-error">&nbsp;#{errors}</span>).html_safe
  end

end

ref:レールガイド

于 2012-12-19T10:38:31.373 に答える
1

simple_form gemを使用して、フィールドで検証エラーを表示できます

   <%= simple_form_for @user do |f| %>
       <%= f.input :username %>
       <%= f.input :password %>
       <%= f.button :submit %>
   <% end %>

また、フォームの使用の上部に検証エラーを表示したい場合

    object.error_messages

フォームタグの後

于 2012-12-19T10:29:39.190 に答える
1

これは以前はRailsの一部でしたが、現在はgemで利用できます。

https://github.com/joelmoss/dynamic_form

これにより、フォームビルダーオブジェクトの特定の属性のエラーを簡単に表示できます。次に例を示します。

<%= f.text_field :foo %>
<%= f.error_message_on :foo %>
于 2012-12-19T11:58:22.293 に答える
0

@model.errorsレイアウトの最上位divでの反復が原因で、エラーがフォームの上部に表示されます。このコードを移動して各フィールドのハッシュのエラーをチェックすると、必要なことを実行できます。

于 2012-12-19T10:32:13.420 に答える
0
<td class="error"><%=@user.errors[:firstname].join(",") %></td>
于 2015-07-07T03:39:24.260 に答える