我认为这是一个一般的 ruby 问题,尽管在我的例子中涉及的对象是 ActiveRecord 模型。
如果我有一个模型可以嵌套在另一个模型中,我如何确定模型的嵌套深度?
即:
Model Root (Level 0)
- Model Level 1
- - Model Level 2
- - Model Level 2
- - Model Level 2
- - - Model Level 3
- - - Model Level 3
- Model Level 1
- Model Level 1
假设 foo
是一个嵌套了三层深度的模型(如上所示)。如果我调用 foo.parent.parent.parent
我会得到根模型。
我如何定义一个方法,例如:foo.depth
,它会返回 foo 和它的根之间有多少层?
谢谢!
最佳答案
像这样的东西应该可以解决问题:
def depth
parent.nil? ? 0 : 1+parent.depth
end
关于 ruby /导轨 : determine how deeply nested an object is,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5196256/