「专题:源码分析」Acts_as_tree

2013/12/23 12:28
阅读数 14

@小子,是个爱钻研爱学习的小伙伴,这是他带来的分享,一些Rails开源gem的源码分析和比较。


因为微信代码格式问题,更多的内容请点击「原文阅读」,这里只贴部分内容。


---正文:


  • acts_as_tree

这个gem是干什么的?原理是什么?

这个gem是用来实现树型结构的,例如一个分类(category),下面还有子分类,这个时候就可以用它了,还有,你回复了一个贴子,别人再来回复你,这个时候也可以用它。一个菜单之下还有子菜单,子菜单之下又可以有子菜单,子菜单之下有菜单项,它可以实现一种树型结构的菜单。它的原理也很简单,在模型中是实现了一个自关联,假如在一个comment(评论)model中,定义一个children(孩子),再定义一个parent(父), :class_name都是’Comment’。那他们怎么实现关联的,也就是说孩子要知道父亲是谁,父亲要知道它有哪些孩子,它在数据存储中是通过一个字段来关联的,在这个gem中这个字段叫parent_id假如我们创建一个根(root), root = Comment.create, 这个时候root*的parent_id是null,它是一个根,children = root.children.create,这个childrenroot的一个孩子,那childrenparent_id就是rootid

。。。

更详细的内容,请点击原文阅读。

本文分享自微信公众号 - 觉学社(WakerGroup)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部