【发布时间】:2015-10-19 20:32:55
【问题描述】:
我很难弄清楚为什么表单中的发布数据没有正确发布。
我必须建模:孩子和父母
以 Child 的形式,我以这种方式嵌套 Parent 的形式:
<%
parent = (child.parent) ? parent : Parent.new
%>
<%=f.fields_for :parent, parent do |builder| %>
<%= render 'parent_fields', :fp => builder %>
<% end %>
parent_fields形式如下:
<% @all_parents = Parent.all %>
<% parent = fp.object %>
<%= fp.fields_for :parent do |builder| %>
<%= builder.input :parent_id, :as => :select, :label => 'Parent: ', :required => false,
:collection => options_from_collection_for_select(@all_parents, "id", "name", parent.id), :include_blank => '- Select -' %>
<% end %>
发布的数据哈希如下:
"parent_attributes"=>{"parent"=>{"parent_id"=>"6"}, "id"=>"36"}
其中 36 是旧的父 ID,6 是新的。
当我执行 update_attributes 时,它不起作用,这是正常的,因为如果哈希是这样的,它会起作用:
...
"parent_id" => 6
"parent_attributes"=>{"id"=>"36", ....}
...
我正在处理遗留代码。数据也有可能被 javascript 修改。这篇文章的目的是确保我编写表单的方式是正确的,因为我是嵌套表单的新手。
谢谢
【问题讨论】:
标签: ruby-on-rails forms nested-forms