Parent object eager load nested associations Rails
在 Rails 4 中,我有以下模型
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | class Parent < ActiveRecord::Base has_many :sons has_many :grand_sons, through: sons scope :load_tree, (id) -> {Parent.includes(sons: [:grand_sons]).find(id)} end class Son < ActiveRecord::Base belongs_to :parent has_many :grand_sons end class GrandSon < ActiveRecord::Base belongs_to :son end |
使用 load_tree 我想获得一个像这样的对象:
1 2 3 4 5 6 7 8 9 10 | { id: 1, sons: [ { id: 1, parent_id: 1, grand_sons:[ { id: 1, son_id: 1, } , ...] }, ... ] } |
但是在做了
试试
1 | Parent.includes(:sons, {:sons => :grand_sons}).find(id) |
我的理解是,您必须明确指定嵌套关联的关系。