0

我有一个带有两条记录的实例变量。

           id   item_with_detail_id  quantity

           100       205                3


           101       205                5

现在,我希望使用 Active record group_by 得到如下结果。

           100       205                8

我试过了

@bill_details=@bill_details.group_by{|bd| bd.item_with_detail_id}.values.map(&:first)

但它不工作。请帮助我实现结果。

4

2 回答 2

1

@账单

select("id, item_with_detail_id,SUM(quantity)").group("item_with_group_id")
于 2012-11-07T07:01:54.637 回答
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%>
于 2012-11-09T05:30:47.507 回答