我正在嘗試製作一個應用程序,用戶可以在其中爲這些目標保存目標,里程碑,里程碑任務以及目標本身的任務。我正在使用多態關聯,但是使用表單來輸入所有這些都是很困難的。問題在於里程碑根本沒有保存,里程碑任務在數據庫中被列爲類型「目標」而不是類型「里程碑」。模型和數據庫設置爲the top answer for this question。 我希望有人可以看看我的form_for實現,看看它是否正確,或者如果問題在別的地方。如果您需要查看其他代碼,請告訴我。嵌套屬性不保存在具有多態關聯的表單中
<%= nested_form_for @goal do |f| %>
<%= render 'shared/error_messages', :object => f.object %>
<%= render 'shared/goal_fields', :f => f %>
<%= f.fields_for :milestones do |ff| %>
<%= render 'shared/milestone_fields', :f => ff %>
<% end %>
<%= f.fields_for :tasks do |ff| %>
<%= render 'shared/task_fields', :f => ff %>
<% end %>
<%= f.link_to_add "Add Milestone", :milestones %>
<%= f.link_to_add "Add Task", :tasks %>
<%= f.submit %>
<% end %>
你只需要使用'@goal.milestones .build'在新的行動中,如果你想要一個'空白'的里程碑形式。這個代碼在控制器中更好。 –
我確實有一個質量指派問題,我修正了。我還在表單中添加了@ goal.milestones.build和@ goal.tasks.build。之後,我將所有內容都保存起來,但在編輯表單時,沒有任何目標數據顯示出來(它看起來就像一個'新'表單)。我有一種感覺,我正在做錯事,只是因爲這變得有多困難。 –