다중 모델 양식이있어서 중첩 모델과 관련된 오류를 캡처 할 수 없습니다. 이것은 Project-> Team-> Roles-> Role_skill_relationship 형식의 계층 구조입니다. 프로젝트 모델 인스턴스 @ 프로젝트와 관련된 오류를 캡처 할 수 있지만 역할 및 기술 모델과 관련된 유효성 검사를 캡처하는 데 실패했습니다. 오류는 화면으로 방향을 바꾸거나 깜박이지 않고 브라우저 페이지에서 직접 반환됩니다. 오류의 한 예 나는 의도적으로 잘못 #이 C보기다중 모델 양식 처리 중 오류
만드는 역할에
NoMethodError 인 형태의 역할 부분을 작성하는 경우 :/사용자/Dstile/문서/GitHub의/creunity_app/응용 프로그램/전경/스킬/광고 # 8 제기 _form.html.erb :
정의 방법 '지도'닐의 경우 : NilClass 추출 소스 (라인 # 주위 8)
7 <% = skill_form.label : 스킬 %>
8 : <%는 = skill_form.collection_select : skill_id는, @skills가 : ID가 : 이름 : 프롬프트 => "는 선택> 기술"% 여기>
코드의 일부이다
<%= render 'shared/project_error_messages' %>
<%= project_form.label :title %>
<%= project_form.text_field :title %>
<%= project_form.label :category, "Category" %>
<%= project_form.select(:category, Project::CATEGORY_TYPES) %>
<%= project_form.label :description %>
<%= project_form.text_area :description %>
<%= project_form.label :goal_1, "Goal 1:" %>
<%= project_form.text_field :goal_1 %>
<h2>Your Team</h2>
<%= project_form.fields_for :team do |f| %>
<%= render 'teams/form', :team_form => f %>
<% end %>`
다음은 오류 코드
'<% if @project.errors.any? %>
<div id="error_explanation">
<div class="alert alert-error">
The form contains <%= pluralize(@project.errors.count, "error") %>.
</div>
<ul>
<% @project.errors.full_messages.each do |msg| %>
<li>* <%= msg %></li>
<% end %>
</ul>
</div>
<% end %>'
역할 양식이 프로젝트에 중첩 된 것과 동일한 방식으로 팀의 팀 형태로 중첩되어에게 렌더링입니다. 내가 이해 한 다른 모든 스레드들로부터 프로젝트와 모든 자식 모델 (team, roles, role_skill_relationships)에 대한 에러는 @parent 객체에 의해 캡쳐되어야한다는 것입니다.
브라우저에서 오류를 무시하도록 설정해야하는 구성 설정이나 코드가 있습니까? 내 생각에 오류가 @ 프로젝트에 있지만이 프로세스가 중단 될 수 있습니다.
그 트릭을했습니다. 고맙습니다! 드롭 다운에서 값을 선택할 때 #create 메서드에서 맵 오류가 발생하지 않았으므로이를 인식하지 못했습니다. – user1906851