0

2 つのレコードを持つ 1 つのインスタンス変数があります。

           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 に答える