我的模型有以下范围。我创建它是为了获得一个父对象列表,这些父对象的子对象与 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
...