我的模型Document
具有以下关系
belongs_to :parent, class_name: 'Document'
has_many :children, class_name: 'Document', foreign_key: 'parent_id'
我希望能够在文档对象上调用一个方法来检索它的所有父项和子项。有没有办法通过活动记录
来做到这一点答案 0 :(得分:1)
您可能想要使用closure_tree gem。它对层次结构非常方便,
答案 1 :(得分:0)
我最终在文档模型上实现了这些方法
def get_children(level = 0, result = [])
result.push([level, self])
if(!self.children.empty?)
self.children.each do |child|
child.get_children(level+1, result)
end
end
if(level == 0)
return result
end
end
def get_parents(result = [])
if self.parent.present?
result.push(self.parent)
self.parent.get_parents(result)
else
return result
end
end