现在我有这个问题:
@events = Event.joins(:packages).where("packages.kind IN (?)", packages).distinct
它返回的对象只匹配packages
数组中的单个属性。
我希望ActiveRecord只返回与给定数组中所有属性匹配的对象。我的查询设置方式如何完成呢?
答案 0 :(得分:1)
您可以构建具有多个条件的查询
@events = Event.joins(:packages).distinct
packages.each do |package|
@events = @events.where("packages.kind = ?", package)
end
@events
答案 1 :(得分:1)
我觉得必须有一种更简单的方法。但是,在Postgres中,尝试:
Event.joins(:packages).having('array_agg(packages.type) @> array[?]', packages).group(:id)