我有表说用户.which是递归的意思是表中存在parent_id,它是同一个table.table结构的任何用户的用户id。就像那样:
id email parent_id
1 test@test.com nil
2 test1@test.com 1
3 email 1
4 email 2
5 email nil
6 email 3
现在我想要,如果我必须使用任何一个id查询所有子记录,包括父。我可以在rails中做。我想递归获取所有子记录,包括父记录。
答案 0 :(得分:0)
您可以尝试
def find_all_child_parents(p_id)
return_childs = []
# Add this node.
return_childs << Child.find(p_id)
direct_childs = User.where(parent_id: p_id)
direct_child.each do |child|
# Add nodes you get from recursive call
return_childs.concat(find_all_child_parents(child.id))
end
return_childs
end
它以递归方式为您提供父项的所有子项,包括父项本身。