我有一個多模型的形式,我似乎無法捕捉有關嵌套模型的錯誤。這是Project-> Team-> Roles-> Role_skill_relationship形式的層次結構。我能夠捕獲與項目模型實例@project有關的錯誤,但是我未能捕獲與角色和技能模型相關的驗證。錯誤直接返回到瀏覽器頁面,而不是重定向並閃爍到屏幕上。一個錯誤的一個例子,如果我故意填寫表格的作用部分錯誤地是錯誤處理多模型形式
在角色#創建
顯示 ÇNoMethodError:/用戶/ Dstile /文檔/ GitHub的/ creunity_app /應用程序/視圖/技能/ _form.html.erb 其中線#8提出:
未定義的方法`地圖」的零: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 %>'
的作用形式嵌套在相同的方式團隊團隊形式嵌套在項目內。從所有其他線程我已經閱讀我的理解是項目及其所有子項模型(團隊,角色,role_skill_relationships)的錯誤應該由@parent對象捕獲。
是否有一個配置設置或一段代碼我缺少應該強制瀏覽器忽略錯誤?我的想法是錯誤可能在@project中,但是這個過程被中斷了。
這樣做。謝謝!我沒有意識到,因爲當我從下拉列表中選擇數值時,它不會在#create方法中拋出映射錯誤。 – user1906851