联合3.2
我试图创建fields_for块的组合和非fields_for块形式:联合3.2
但输出被重复,看起来像他们循环。 ..
也许是因为,有一个fields_for块,另一个不是fields_for /表单。
我该如何将它们中的两个结合在我的<tbody>
或<tr>
标记中。
<% @annual_procurement_plan.project_procurement_management_plans.each do |ppmp| %>
<% ppmp.items.each do |itemx| %>
<tbody>
<%= f.fields_for :project_procurement_management_plans do |p| %>
<%= p.fields_for :items do |item| %>
<tr class="nested-fields info">
<td>
<%= item.select :category_id, Category.all.map{|c| [c.code, c.id]}%>
</td>
<td>
<%= content_tag :span, itemx.description%>
</td>
<td><%= p.text_field :pmo_end_user%>
</td>
</tr>
<% end %>
<% end %>
</tbody>
<% end %>
<% end %>
任何解决方法将不胜感激。谢谢。
将在您的fields_for
以猜测你的模型层次结构是annual_procurement_plan
有很多project_management_procurement_plans
,并project_management_procurement_plan
有许多items
迭代项目这样
f.fields_for :project_procurement_management_plans, ppmp do |p|
感谢您提供一个简短的解决方法。现在工作正常。 – xirukitepe 2013-04-18 07:56:29
,形式的一般结构应该是这样的:
<% @annual_procurement_plan.project_management_procurement_plans.each do |ppmp| %>
<%= f.fields_for(:project_management_procurement_plans, ppmp) do |ppmp_f| %>
# any fields for the ppmp
<% ppmp.line_items.each do |item| %>
<%= ppmp_f.fields_for(:line_items, item) do |item_f| %>
# any fields for the line_item, eg
<%= item_f.select :category_id, Category.all.map{ |c| [c.code, c.id] } %>
<% end %>
<% end %>
<% end %>
<% end %>
在每一种情况下,你遍历关联的每个对象,并为每个对象的,你打电话fields_for
(将关联用作第一个参数,将实际对象用作第二个参数)。因此,您通过ppmp
s循环,为其中的每个呼叫fields_for
,然后在每个ppmp
内循环遍历所有line_items
,为其中的每个呼叫fields_for
。
确保当您添加在该领域的使用(为pmpp
领域即item_f
为line_item
领域,并pmpp_f
)正确的表单生成器。
可以请您详细说明吗?也许你可以列出整个表格和模型。 – 2013-04-18 06:31:04
你的模型heirarchy的大纲将有所帮助,以及究竟是什么问题。 “循环”是什么意思? – 2013-04-18 07:12:14