如何按类别和计数对项目进行分组?

时间:2019-05-27 12:29:17

标签: ruby-on-rails

我正在使用gem "groupdate", "~> 3.1.1"gem "chartkick"进行统计,因此我需要知道每个类别中售出了多少商品。 这是我的模型,并且存在关联。

category.rb

has_many :products

product.rb

belongs_to :category, optional: true
has_many :variants, dependent: :destroy

variant.rb

belongs_to :product
has_many :order_items, dependent: :destroy

order_item.rb

belongs_to :variant

我可以找到订购商品的类别标题,如下所示:

OrderItem.last.variant.product.category.title

但是如何从所有order_items中按标题和计数对类别进行分组?

下面当然不起作用,但这是我的尝试...

def order_item_category
 OrderItem.joins(:variant).product.category.group(:title).count
end

1 个答案:

答案 0 :(得分:1)

您需要正确地加入他们,因为您需要所有记录

OrderItem.joins(variant: [product: :category]).group('categories.title').count

这应该为您提供订单项的分类计数。

注意:您可能还想添加范围,取决于您是否只希望订购商品处于完成状态。