匹配我使用的是非常標準的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