查询后使用join计算“基本”记录的数量

时间:2017-01-16 01:24:09

标签: ruby-on-rails-4 activerecord

想象一下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

问题是,如何在结果中获得总数对象,而不是图书的数量?

1 个答案:

答案 0 :(得分:0)

根据文档http://apidock.com/rails/ActiveRecord/QueryMethods/joins,上述方法应该返回person的数组。小说范围可能包含books.type ='fiction'之类的代码,它会使书籍上的LEFT JOIN查询导致重复的人。

你可以简单地做

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

获得人数

要关注Ruby on Rails ActiveRecord query using a join

的类似问题