我有一个多模型的形式,我似乎无法捕捉有关嵌套模型的错误。这是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