【发布时间】:2016-12-01 21:54:39
【问题描述】:
我有一个嵌套表单:
= form_for @class4, url: {action: "create"} do |f|
= render 'shared/error_messages'
.form-group
= f.label :description
= f.text_field :description
= f.fields_for :class3 do |builder|
= render :partial => '/shared/class3', :locals => {:f => builder}
= submit_tag( "submit")
= link_to 'clear'
部分错误
<% if @instance.errors.any? %>
<div id="error_explanation">
<div class="alert alert-danger">
The form contains <%= pluralize(instance.errors.count, "error") %>.
</div>
<ul>
<% instance.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
在我的控制器中输入以下代码:
current_user
.class1.find( params [:"id"])
.class2.where( id: params [:"id2"])
.first_or_create!
.class3.where(id: params[:"id3"])
.first_or_create!
.class4.create!(params[:"...."])
问题是,当 params [:"id"] 不是有效的 Class1 记录 ID 时,我得到一个 ActiveRecord::RecordNotFound 错误,这很明显,但是,我想向用户显示错误,就像任何其他表单验证错误一样,例如:
params["ID"] 不是有效的 Class1 记录
如何在通知用户他们选择的 ID 无效的同时保留嵌套创建?
【问题讨论】:
标签: ruby-on-rails forms validation