Рельсы получают счет из глубокой ассоциации - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь подсчитать, сколько раз было выполнено перенаправление из розничного продукта.Какой лучший способ сделать это?

Я пытался использовать: @products.includes(:retailer_products).includes(:redirects).count("redirects.id")}

Мне удалось получить счет для отдельного продукта, но я хотел бы получитьрассчитывать на основе всех продуктов.

A product имеет retailer, что, в свою очередь, retailer products.Каждый retailer product имеет redirects, который содержит retailer_product_id, и дату, на которую он был нажат - created_at.

Примечание. Некоторые продукты не имеют розничного продукта, поэтому не будутимеют любые перенаправления, связанные с ними.

модель продукта

has_many :retailer_products
has_many :retailers, through: :retailer_products

retailer_product модель

has_many :redirects

модель перенаправления

belongs_to :retailer_product

1 Ответ

0 голосов
/ 17 декабря 2018

Почему бы вам не попробовать другой способ, вам интересен счет Redirect в конце концов:

Redirect.joins(:retailer_product)
        .where(retailer_products: { product_id: @products.pluck(:id) })
...