#12 楼 @although2013 #11 楼 @icesky #3 楼 @jxs471494539
层数到一定数量,可以限制掉的,或做成与最后层平行
:plus1: 方便 看帖子的 人,“过滤”一些 不感兴趣的 讨论节点 找到自己感兴趣 的 树形节点,针对性的分层回复。缺点就是 样式 没有列表的好看
#8 楼 @chairy11 就是 一个 树形 的递归,不断 where 不断 map
Nav 表只需要一个 parid,还有一个 topic_id 就行了
class Nav < ActiveRecord::Base
scope :par, -> id, pid { where(:parid => id).where(:topic_id => tid) }
end
# nav_first_id 是第一个评论nav的id (这里我处理不是很好,我每生成一个topic都会默认给它加条看不见的nav ,以第一条nav的id作为递归的第一个点 ),@topic_id是 topic 的 id 把评论 区别开来是哪棵 topic 树的
tree = -> id {
-> par {
# 这里 可以 指定一些 输出 ...
par[id].map { |idd| tree[idd.id][par] } if par[id].count >= 1
}
}
tree[nav_first_id][ -> id { Nav.par(id, @topic_id) }]
@huacnlee 看截图你是做出来了,何不后台加个开关,把代码发布, ruby-china 是很好的学习资料,这个树形对很多人有参考价值,请考虑,谢谢
建议该功能能够先上起来。上起来之后大家再给提提建议,不满意再接着改。改到满意为止。
如果还是不满意,就切换回目前的模式。
一个新方案的早期肯定会有很多不够完善的地方,慢慢打磨,会好起来的。