实施例:
一个src/caffe/net.cpp
模型Person
一个accepts_nested_attributes_for
模型,如示例here中所示。使用嵌套Pets
提交form_for(@person)
会点击PeoplesController中的更新方法。如果存在不成功的保存,即由于宠物的名称未通过fields_for :pets
验证,如何使用ActiveModel :: Dirty恢复对pet实例所做的更改,从而恢复所做的更改
在形式?我想这样做,以便嵌套的表单输入将保留他们预先保存的宠物的值,而不是空白。
示例:
presence: true
答案 0 :(得分:1)
我找到了完成这项工作的方法。使用嵌套的fields_for时,您可以访问该表单中的对象,因此可以在其上调用restore_attributes等。
一个粗略的例子:
<%= form_for(@person) do |f| %>
<%= f.fields_for :pets do |ff| %>
<%
if ff.object.errors
ff.object.restore_attributes
end
%>
<% end %>
<% end %>