想象一下ActiveRecord(伪代码)
Person has_many books
Book belongs_to person
假设有三个人和六本小说书。
results = Person.joins(:books).fiction # fiction is a scope name
results.count # would be 6, number of fiction books
问题是,如何在结果中获得总数人对象,而不是图书的数量?
答案 0 :(得分:0)
根据文档http://apidock.com/rails/ActiveRecord/QueryMethods/joins,上述方法应该返回person的数组。小说范围可能包含books.type ='fiction'之类的代码,它会使书籍上的LEFT JOIN查询导致重复的人。
你可以简单地做
results = Person.joins(:books).fiction
results.uniq.count
获得人数
的类似问题