내 레일 앱에서는 활성 레코드 개체에 유효성 검사 도우미를 사용하며 훌륭합니다. 문제가 발생하면 개인적인 문제와 함께 웹 페이지에 "3 가지 오류로 인해이 포버가 저장되는 것을 금지했습니다"라는 표준이 나타납니다."3 개의 오류로 인해이 foobar가 저장되지 못했습니다"라는 유효성 검사 메시지가 Rails에 어떻게 변경됩니까?
이 기본 메시지를 직접 재정의 할 수있는 방법이 있습니까?
내 레일 앱에서는 활성 레코드 개체에 유효성 검사 도우미를 사용하며 훌륭합니다. 문제가 발생하면 개인적인 문제와 함께 웹 페이지에 "3 가지 오류로 인해이 포버가 저장되는 것을 금지했습니다"라는 표준이 나타납니다."3 개의 오류로 인해이 foobar가 저장되지 못했습니다"라는 유효성 검사 메시지가 Rails에 어떻게 변경됩니까?
이 기본 메시지를 직접 재정의 할 수있는 방법이 있습니까?
오류를 표시하는 데 사용하는 error_messages_for
도우미는 기본 헤더 텍스트를 변경할 수있는 :header_message
옵션을 허용합니다. 마찬가지로 : error_messages_for 'model', :header_message => "You have some errors that prevented saving this model"
이 당신의 친구입니다.
오류 도우미 대신 model.errors 해시를 반복 할 수 있습니다.
각각의 경우 오류 해시를 처리하는 방법에 대해 생각했지만 모델에서 DRY 방법을 사용하기를 바랍니다. – RichH
모델의 "validates_"메소드는 모두 일반적으로 : message => "My Validation Message" 매개 변수로 전달 될 수 있습니다.
<% if([email protected]?) %>
<div id="error_message">
<h2>
<%= image_tag("error.png", :align => "top", :alt => "Error") -%>
Oops, there was a problem editing your information.
</h2>
<%= short_error_messages_for(:model) %>
</div>
<% end %>
그런 다음 내
application_helper에 내가 오류를 반복하고 간단한 목록을 생성합니다 :
나는 일반적으로 이런 식의 오류를 포장
def short_error_messages_for(object_name)
object = instance_variable_get("@#{object_name}")
if object && !object.errors.empty?
content_tag("ul", object.errors.full_messages.collect { |msg| content_tag("li", msg) })
else
""
end
end
그 코드가 꽤 오래과 아마도 요즘 루비를 쓰는 방법이 아니 겠지만, 요점을 얻으실 수 있습니다.
완벽한 - 감사합니다! – RichH
언급할만한 가치가 있습니다 : <% = f.error_messages : object_name => '귀하의 정보'%> –