我有一些困難,要弄清楚爲什麼表單中的發佈數據沒有正確發佈。belongs_to嵌套形式的關聯不能正確發佈數據
我不得不型號:孩子和家長
在孩子我在這樣嵌套母的形式形式:
<%
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是舊的父母身份證,6是新的身份證。
當我做update_attributes方法不起作用這是正常的,如果哈希會是這樣的方式,因爲它的工作:
...
"parent_id" => 6
"parent_attributes"=>{"id"=>"36", ....}
...
我工作的遺留代碼。數據也可能被javascript修改。這篇文章的目的是爲了確保我寫這個表單的方式是正確的,因爲我是嵌套表單的新手。
謝謝
我知道這對於parent_id是有效的。你如何設法編寫父母的其他領域。說父母有字段:field1和field2,你想使用child.update_attributes更新。爲了清楚起見,我只需要表單,因爲在控制檯中適用於我(這意味着模型已正確設置)。 –
讓我知道那是如何工作的。 fields_for'的其他文檔在這裏:http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-fields_for –