2017-01-16 3 views
0

in Active Imagine (Pseudocode)Erste Zählung der Anzahl der ‚Basis‘ Datensätze nach Abfrage mit Join

Person has_many books 
Book belongs_to person 

Lasst uns sagen, es gibt drei Personen und 6-Fiction-Bücher.

results = Person.joins(:books).fiction # fiction is a scope name 
results.count # would be 6, number of fiction books 

Die Frage ist, wie kann ich die Gesamtzahl Person Objekte im Ergebnis zu erhalten, nicht die Anzahl der Bücher?

Antwort

0

Gemäß der Dokumentation http://apidock.com/rails/ActiveRecord/QueryMethods/joins sollte die obige Methode das Array der Person zurückgeben. Der Fiction-Bereich kann einen Code wie books.type = 'fiction' enthalten, wodurch LEFT JOIN-Abfragen in Büchern durchgeführt werden, die zu sich wiederholenden Personen führen.

können Sie tun einfach

results = Person.joins(:books).fiction 
results.uniq.count 

die Person

ähnliche Frage zählen zu bekommen Ruby on Rails ActiveRecord query using a join

+0

Dank zu folgen! habe das nicht gesehen, als ich RTFM'd. – David

Verwandte Themen