2012-11-07 96 views
0

我有一個具有兩條記錄的實例變量。group by in active records

  id item_with_detail_id quantity 

      100  205    3 


      101  205    5 

現在,我想要的結果如下使用活動記錄group_by。

  100  205    8 

我試着用

@[email protected]_details.group_by{|bd| bd.item_with_detail_id}.values.map(&:first) 

,但它不工作。請幫助我實現結果。

+0

定義 「不工作」 –

+0

如果我明白你的問題是:你想找到每個item_with_detail_id訂購數量的總和。 – 18bytes

+0

是的。但使用上面提到的group_相同。 – vijikumar

回答

0

最後我解決了這個問題。具體如下

在控制器=>

@bill_details = @bill_details.group_by{|bd| bd.item_with_detail_id}.values 

它將給出的結果

#[[#<BillDetail id: 100, item_with_detail_id: 205, quantity: 3, #<BillDetail id:101, item_with_detail_id: 205, quantity: 5]] 

並在視圖頁面:

<% for bd in @bill_details%> 
    <%quantity=0%> 
    <%for bill_detail in bd%> 
    <%quantity+=bill_detail.quantity%> 
    <%end%> 
    <%bd=bd.first%> 
<%end%> 
1

@bill

select("id, item_with_detail_id,SUM(quantity)").group("item_with_group_id") 
+1

它不工作先生Vairamuthu。它提供了以下錯誤。錯誤的參數數量(1代表0) – vijikumar