2012-12-19 37 views

Trả lời

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 

update:

không có nhãn

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: rails guide

+0

cách này thực sự thêm thông báo lỗi không chỉ vào đầu vào mà còn cho nhãn là –

+0

có cách nào bỏ qua trường f.label và chỉ áp dụng các lỗi cho trường nhập không? –

+0

Cập nhật câu trả lời. – emrahbasman

1

Bạn có thể sử dụng đá quý simple_form để hiển thị các lỗi xác nhận với các lĩnh vực

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

Và nếu bạn muốn hiển thị xác nhận lỗi trên đỉnh của hình thức sử dụng

object.error_messages 

Sau khi hình thức thẻ

0

Lỗi được hiển thị ở đầu biểu mẫu của bạn do số lần lặp lại @model.errors trong div trên cùng của bố cục của bạn. Nếu bạn di chuyển mã này để kiểm tra lỗi trên băm của bạn trên mỗi trường, bạn có thể hoàn thành những gì bạn muốn.

+0

bạn có thể cung cấp bất kỳ mã mẫu nào không? –

1

này đã từng là một phần của Rails, bây giờ nó có sẵn trong một viên ngọc:

https://github.com/joelmoss/dynamic_form

Nó cho phép bạn dễ dàng hiển thị lỗi cho bất kỳ thuộc tính cụ thể của một đối tượng hình thức xây dựng, ví dụ:

<%= f.text_field :foo %> 
<%= f.error_message_on :foo %> 
0
<td class="error"><%[email protected][:firstname].join(",") %></td> 
+0

lỗi [] là một mảng lỗi để xử lý bất kỳ lỗi nào trong quá trình xác thực. chúng tôi có thể chỉ định lỗi [: tên đối tượng] sẽ hiển thị lỗi liên quan đến đối tượng cụ thể. cho ví dụ: –

+0

Bạn nên [sửa] bài đăng của bạn để bao gồm mã mà nhận xét đã ăn. –

Các vấn đề liên quan