我的评论结构就像这样(我使用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)。我可以使用多个循环,但我认为这将是非常低效的。对于每个回复,我必须生成一个部分来显示该回复。
我需要一个函数来返回父评论的所有子项以及它的孩子等等。
答案 0 :(得分:1)
通过多个数据库查询加载嵌套集效率很低。有更好的方法来组织嵌套数据。看看如何实现nested set in SQL或使用像awesome_nested_set这样的gem,允许用一个查询加载所有节点。