rails 中关联记录的条件 select

Conditional select on associated record in rails

我需要计算与产品相关的零售单位的数量,还需要从处于特定位置的零售单位获取图像,计数部分工作正常,但我不知道如何 select 有条件的。我还需要产品中的字段。

这就是我的

产品 -> has_many :retail_units

RetailUnit -> belongs_to:产品

Product.joins(:retail_units)
.select(:id, :name, "COUNT(retail_units.id) AS retail_units_total")
.group(:id)

我想我需要做一些类似

的事情
Product.joins(:retail_units)
.select(:id, :name, "COUNT(retail_units.id) AS retail_units_total, retail_units.image WHERE retail_units.position = 1")
.group(:id)

但我不太明白语法。 谢谢

是这样的吗?

Product.joins(:retail_units)
.select(:id, :name, "COUNT(retail_units.id) AS retail_units_total")
.where(retail_units: { position: 1 } )
.includes(:retail_units)
.group(:id)

遍历 the guides 总是有用的。