我知道标题可能含糊不清,但我不确定它的标题是什么。我不确定是否有“最佳实践”,所以在这里......
我有一个从头开始构建的基本社交网络应用程序。用户可以发布状态,人们可以对该状态发表评论,人们也应该能够评论评论。我想我明白它应该如何运作,但不介意别人给我他们的观点。所以(关联方式)状态has_many评论,反过来评论只有一个状态。评论has_many子评论和子评论仅属于一条评论。这些嵌套注释如何工作?
如果用户发布状态而另一个用户发布评论;没关系。但是,如果....用户1发布状态并且用户2对该状态发表评论,则用户3对用户2的评论进行评论(因此用户1已创建状态,用户2已创建评论,用户3评论为子评论)用户2回复用户3的子评论?它仍然是作为子评论的类(即评论评论)或者它是否必须进一步嵌套:
用户1创建状态,用户2创建评论,用户3创建子评论,用户2创建子评论
这似乎不是正确的方法,因为如果用户在相同状态下回复每个人的评论,它最终会变得太乱。
更新:考虑到协会,另一种可能性是状态has_many评论和评论has_many回复。但这并没有解决我的问题...如果用户回复其他用户回复评论怎么办?状态has_many评论,评论has_many回复....但回复也有_many回复?
答案 0 :(得分:1)
#262 Trees with Ancestry - RailsCasts - 描述使用gem构建嵌套消息。
答案 1 :(得分:0)
对于此类情况,我总是使用 awesome_nested_set gem。所有评论只需要一个模型。有关嵌套集及其用法的更多信息,请参阅 wiki page (它的逻辑非常简单)。有关即用型解决方案,请查看 acts_as_commentable_with_threading gem页面。