Rails 从深度关联中获取计数

Rails getting the count from a deep association

我正在计算从零售商产品进行重定向的次数。最好的方法是什么?

我试过使用:@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

你为什么不换个方式试试呢,毕竟你对 Redirect 计数感兴趣:

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