2013-04-18 44 views
0

我試圖創建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 %> 

任何解決方法將不勝感激。謝謝。

+0

可以請您詳細說明嗎?也許你可以列出整個表格和模型。 – 2013-04-18 06:31:04

+0

你的模型heirarchy的大綱將有所幫助,以及究竟是什麼問題。 「循環」是什麼意思? – 2013-04-18 07:12:14

回答

0

將在您的fields_for以猜測你的模型層次結構是annual_procurement_plan有很多project_management_procurement_plans,並project_management_procurement_plan有許多items迭代項目這樣

f.fields_for :project_procurement_management_plans, ppmp do |p| 
+0

感謝您提供一個簡短的解決方法。現在工作正常。 – xirukitepe 2013-04-18 07:56:29

0

,形式的一般結構應該是這樣的:

<% @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_fline_item領域,並pmpp_f)正確的表單生成器。