Rails从深厚的关联中获得成功

时间:2018-12-17 12:01:43

标签: ruby-on-rails associations model-associations

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

我尝试使用:@products.includes(:retailer_products).includes(:redirects).count("redirects.id")}

我已经能够获得单个产品的数量,但是我想基于所有产品获得数量。

一个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 :(得分:3)

为什么不尝试另一种方法,毕竟您对Redirect计数感兴趣:

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