Как группировать товары по категориям и рассчитывать? - PullRequest
0 голосов
/ 27 мая 2019

Я делаю статистику с gem "groupdate", "~> 3.1.1" и gem "chartkick", и мне нужно знать, сколько предметов было продано в каждой категории. Вот мои модели и есть ассоциации.

category.rb

has_many :products

product.rb

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

вариант.rb

belongs_to :product
has_many :order_items, dependent: :destroy

order_item.rb

belongs_to :variant

Я могу найти название категории позиции заказа, например:

OrderItem.last.variant.product.category.title

Но как из всех элементов order_ я могу сгруппировать категории по названию и количеству?

ниже не работает, конечно, но это моя попытка ...

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

1 Ответ

1 голос
/ 27 мая 2019

Вы должны присоединиться к ним должным образом, так как вам нужны все записи

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

Это должно дать вам разумное количество категорий элементов заказа.

Примечание: Вы также можете добавить область в зависимости от того, хотите ли вы только элементы заказа в завершенном состоянии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...