我有董事会模型。董事会可以订阅其他董事会(作为饲料)。 可以说我有板树是这样的:简单的递归方法
http://upload.wikimedia.org/wikipedia/commons/thumb/f/f7/Binary_tree.svg/200px-Binary_tree.svg.png
所以说: Board.find(2).feeds
是板5和7 Board.find(7).feeds
是板2和6等
我想写方法all_feeds
返回所有来自各个层面的特定董事会的饲料。例如: Board.find(7).all_feeds
将板的输出数组与IDS:2,6,5,11
我开始喜欢的东西:
def all_feeds
if feeds.empty?
return
else
feeds.each {|feed| feed.all_feeds}
return feeds
end
end
可能要添加此回提供给一些全局数组,但不知道我该怎么做。
感谢您的帮助。
PS。这并不总是一个二叉树,你可以有两个以上的提要。
它不起作用,我添加了新代码,我认为它正在工作,必须测试它。 –
哎呀,我想我忘了包括之前的当前水平饲料。查看更新的答案! –