Sagen wir, ich habe Modelle: User und Item und Beziehung viele-zu-viele zwischen ihnen. So erhalten Sie Benutzer, die genau (nicht mehr) Elemente mit den definierten Attributen haben, d. H. Benutzer mit Elementen mit Farben = ['rot', 'schwarz'].Umgekehrt has_many in Rails
Natürlich kann ich so etwas tun:
User.all :joins => [:items, :items], :conditions => {:"items.color" => "red", :"items_users.color" => 'black'}
Aber für mehr Attribute, es wird ziemlich umständlich. Ich kann auch tun:
User.all(:conditions => ["items.color in (?), ['red', 'black']], :include => :items)
Aber dies gibt auch Benutzer mit Artikeln Farben = [ ‚rot‘, ‚schwarz‘, ‚blau‘, ‚etc‘]
So ist die einzige Lösung, die ist alles zu bekommen und mit Ruby-Syntax zu sortieren? Wie macht man es in einer SQL-Abfrage oder Rails AR-Syntax?
Obwohl einfach, bricht dies Schienen Konventionen, und verhindert Lazy-Laden in Ketten (vorausgesetzt, dies würde in eine "Lambda" gehen –