ActiveRecord以Sum / Limit排序

时间:2014-11-06 18:38:38

标签: ruby-on-rails ruby ruby-on-rails-3 activerecord

绕圈试图为此ActiveRecord语句添加排序:

sales = Sale.where(supplier_id: params[:id])
            .group(:product_id)
            .limit(params[:limit])
            .sum(:units)

sales是一个有序的哈希,如下所示:

{15995=>34, 16068=>128, 14014=>418, 11513=>11, 15528=>6}

我确信我缺少一些简单的东西。有人可以帮忙吗?

编辑:我应该说,我想按单位总和订购。

1 个答案:

答案 0 :(得分:2)

您需要在求和之前订购:

sales = Sale.where(supplier_id: params[:id])
            .group(:product_id)
            .limit(params[:limit])
            .order("SUM(units)")
            .sum(:units)