【发布时间】:2026-01-23 00:30:01
【问题描述】:
我有一个模型
class MyModel < ActiveRecord::Base
belongs_to :parent, :class_name => 'MyModel'
has_many :children, :class_name => 'MyModel', :foreign_key => 'parent_id'
end
我想抓取所有没有父对象的对象,并将它们与所有子对象一起获取。换句话说,我想要所有的父母和他们的孩子,以及他们孩子的孩子等等。所以它必须以递归方式急切加载。 如果我这样做了
@result = MyModel.includes(:children)
.where('parent IS ?', nil)
我只有一个级别的孩子的父母。但我没有得到孩子的孩子。是否有可能递归地获得所有这些?是否可以添加计算每个父母的孩子数量?
【问题讨论】:
标签: ruby recursion activerecord eager-loading