匹配我使用的是非常标准的has_and_belongs_to_many协会,像在Rails的协会指导的例子: http://guides.rubyonrails.org/association_basics.html#the-has-and-belongs-to-many-associationhas_and_belongs_to_many确切的ID
的问题是,我想查询查找与大会的精确匹配部分。例如, 大会与相关联的这2份和1 ID的零件,2
下面是我失败的方法:
Assembly.joins(:parts).where(parts: {id: [1,2]})
Assembly.joins(:parts).
where('parts.id IN (?)', [1,2]).
group('assemblies.id').
having('COUNT(assemblies.id) >= ?', [1,2].length)
(这一次被这个建议SO回答: Rails scope - where in exact matches)
这些方法返回包含相关零件中包含ids 1和2的零件的Assembly对象。但是,我想要的仅仅是具有这2个部件的组件(ids 1和2)。
请帮忙!
@jazzinthermorning,你可以说,你使用的是什么数据库? –
是的,使用PostgreSQL – jazzinthemorning