我正在尝试找到执行此查询的Ruby方法。我有两个对象Document
和Component
。组件belongs_to
文档和文档可以包含零个,一个或多个组件。
我想要的是具有组件的所有文档的计数。我不在乎文件只有一个组件或二十个组件。
我尝试做的是Component.group(:document_id).count
,但这给了我一个哈希:{162=>1, 163=>2}
(文档162有1个组件,文档163有2个。)
所以基本上给出了这个结果,我希望返回的查询是2
(文档162和163是唯一具有组件的文档)。
答案 0 :(得分:1)
Document.joins(:components).uniq.count
答案 1 :(得分:1)
根据您目前正在做的事情:
Component.group(:document_id).count.keys.uniq.count