2012-11-18 28 views
0

我在我的模型上有以下範圍。我創建了它,以便我可以獲得具有與some_id_on_child值123匹配的子級的父對象的列表。這似乎會返回正確的記錄。這將返回我想要的記錄,但不是我所期望的大小/計數/長度?

scope :light, joins(:children).where(children: { some_id_on_child: 123 }).group('parents.id') 

然而,當我問計數/長度/大小而不是返回被上面返回的記錄數,則返回匹配每個父母的標準,兒童的數量。

Parent.light.size 

我結束了這種輸出的..

... 
12984 => 5 
12398 => 5 
12398 => 6 
... 

回答

0

group位是什麼原因造成的結果,當你添加count。 Rails正在做一些魔術,並將size轉換爲count。如果你不介意返回所有結果,你可以追加.all.size,並應該這樣做。或者刪除group位並添加.distinct('parent_id').count

相關問題