1

다음과 같이 문제점을 단순화했습니다. f.error_messages은 기본 오류 만 표시합니다. 전용 "오류 1"이 나타납니다f.error_messages는 기본 오류 메시지 만 표시합니다.

errors.add_to_base "Error 1" 
errors.add_to_base "Error 2" 

다음 뷰 (즉 <%= f.error_messages %>)에 메시지를 인쇄하고 관찰,하지만 "오류 2"복제하려면 다음을 수행하십시오! 또한 errors.full_messages을 검사하여 실제로 두 가지 오류가 모두 발생하는 것을 관찰하십시오. 값은 ["Error 1", "Error 2"]입니다.

누구든지이 문제를 복제 할 수 있습니까? 더 중요한 것은 ... 누구든지 f.error_messages에게 모든 오류를 출력하는 방법을 말해 줄 수 있습니까?

감사합니다.

UPDATE이 : 사실, 나는 A 급 has_one 클래스 B를 가지고 내가 클래스 B에베이스에 추가하고, 그것은 다음 작업을 수행 할 경우처럼 보이는 클래스 A의 f.error_messages를 호출하고있어, 그것은 전체 목록을 보여줍니다 클래스 B에서 오류를 : 나는 부모에 errors를 호출하는 경우

<% class_a.fields_for :class_b do |class_b| %> 
    <%= class_b.object.errors.full_messages.join("<br />") %> 
<% end %> 

는 그러나 하지 작업을 수행합니다.

<%= class_a.object.errors.full_messages.join("<br />") %> 

클래스 B의 첫 번째 오류 (예 : '오류 1') 만 표시됩니다. 분명히 클래스 A는 accepts_nested_attributes_for : class_b를 수용합니다.

마지막으로 레일즈 2.3.11입니다.

답변

1

인쇄 할 수있는 값이 아닌 배열로 처리해야합니다.

<% f.error_messages.each do |msg| %> 
    <%= msg %> 
<% end %> 
+0

이것은 작동하지 않습니다. 그러나 실제로 나는 퍼즐의 또 다른 조각을 발견했으며 그에 따라 질문을 업데이트했습니다. 그것은 중첩 된 양식을 사용하고 오류가 자식 개체에 추가됩니다 사실로 인해 것으로 보인다. –

관련 문제