我在@item_list
中有一个表单:
<%= form_for @item_list do |f|%>
some meta-info to describe item_list
<%end%>
我还有一个名为_item.html.erb
的渲染部分:
<%= form_for @item_list.item do |f|%>
some meta-info to describe item_list.item
<%end%>
在我的索引视图中,我有一个名为add item
的按钮,它将调用jquery ajax函数将此部分附加到div块,以及另一个名为done
的按钮,我希望将其存储所有表格中的所有信息一次。
当我尝试保存这些时,参数不包含项目信息。我想这是因为当我尝试添加新项目时,我没有在后端更新item_list
。我希望你能就此提出一些想法。
答案 0 :(得分:3)
您将要为此设置嵌套表单。关于嵌套表单的stackoverflow还有很多其他问题,但这里有要点:
@item_list.items.build
,假设ItemList has_many Items accepts_nested_attributes_for :item
attr_accessible :items_attributes
您需要将表单构建器传递给partial,如下所示:
_form.html.erb
<%= form_for @item_list do |f| %>
<% @item_list.items.each do |item| %>
<%= render 'item', :f => f %>
<% end %>
<% end %>
_item.html.erb
<%= f.fields_for :items, item do |item_form| %>
<%= item_form.text_field ... %>
<% end %>
如果您需要更多细节,请向我们提供更多代码,包括您的关系型号。我现在就把javascript留给你了。