迭代嵌套注释的最佳方法是什么?

时间:2015-08-22 05:21:18

标签: ruby-on-rails ruby nested

我的评论结构就像这样(我使用acts_as_commentable_with_threading)。

评论1(id:1)的parent_id为nil,因为它不是对任何评论的回复。 注释2(id:2)的parent_id为1,因为它是对注释1的回复,其id为1。 注释3(id:3)的parent_id为2,因为它是对注释2的回复。 注释4(id:4)的parent_id为1,因为它是对注释1的回复。

加载父评论的所有回复的最佳方式是什么(在本例中为注释1)。我可以使用多个循环,但我认为这将是非常低效的。对于每个回复,我必须生成一个部分来显示该回复。

我需要一个函数来返回父评论的所有子项以及它的孩子等等。

1 个答案:

答案 0 :(得分:1)

通过多个数据库查询加载嵌套集效率很低。有更好的方法来组织嵌套数据。看看如何实现nested set in SQL或使用像awesome_nested_set这样的gem,允许用一个查询加载所有节点。

相关问题