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
...
4

1 に答える 1

0

を追加すると、groupビットが結果の原因になりますcount。Railsはいくつかの魔法を実行しており、同様に変換sizeしています。countすべての結果を返すことを気にしない場合は、追加することができ.all.size、それを行う必要があります。または、groupビットを削除して追加し.distinct('parent_id').countます。

于 2012-11-18T03:57:36.883 に答える