ich einen sehr Standard has_and_belongs_to_many Verein verwenden, wie das Beispiel in der Rails-Verbänden Führung: http://guides.rubyonrails.org/association_basics.html#the-has-and-belongs-to-many-associationhas_and_belongs_to_many paßt genau durch id
Das Problem ist, dass ich mit der genauen Übereinstimmung die Versammlung finden abfragen möchte von Teile. Zum Beispiel Montage mit 2 Parts zugeordnet sind, und die Teile-IDs von 1, 2.
Hier sind meine Ansätze, die fehlschlagen:
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)
(Dieser durch das SO vorgeschlagen wurde beantworten: Rails scope - where in exact matches)
Diese Ansätze geben Assembly-Objekte zurück, für die nur Teile mit den IDs 1 und 2 in den zugehörigen Teilen enthalten sind. Aber was ich will, sind nur Assemblies mit genau diesen 2 Teilen (Id 1 und 2).
Bitte helfen!
@jazzinthermorning, können Sie sagen, welche Datenbank verwenden Sie? –
Ja, mit PostgreSQL – jazzinthemorning