2014-01-18 102 views
0

我知道標題可能含糊不清,但我不確定標題的標題。我不知道是否有一個「最佳實踐」這一所以這裏去...Ruby on Rails邏輯

我有一個基本的社交網絡應用,我從頭開始構建。用戶可以發佈狀態,並且人們可以評論該狀態,人們也應該能夠對評論發表評論。我想我理解它應該如何工作,但不介意別人給我他們的觀點。因此(關聯性)地位has_many評論,反過來評論只有一個地位。評論have_many子評論和子評論只屬於一個評論。這些嵌套評論如何工作?

如果用戶發佈狀態,而另一用戶發佈評論;沒關係。但是,如果...用戶1發佈狀態和用戶對該狀態的2條評論,則用戶3然後評論用戶2的評論(因此用戶1已經創建了狀態,用戶2評論和用戶3是子評論)用戶2回覆用戶3的子註釋?它仍然作爲一個子註釋類(即評論評論),或者它將不得不如此嵌套:

用戶1創建一個狀態,用戶2創建一個註釋,用戶3創建一個子註釋,用戶2創建子目錄

這似乎不是正確的做法,因爲如果用戶在相同的狀態下回復其他人的評論,它最終會變得太亂。

更新:調查關聯另一種可能性是狀態has_many評論和評論has_many回覆。但是這並不能解決我的問題......如果用戶回覆其他用戶對評論的回覆,該怎麼辦?狀態has_many評論,評論has_many回覆....但回覆也has_many回覆?

回答

0

我總是使用awesome_nested_set這種情況下的寶石。所有評論只需要一個模型。更多關於嵌套和它們的用法一般,你可以閱讀wiki page(它有一個非常簡單的邏輯)。對於準備使用的解決方案檢查acts_as_commentable_with_threading寶石的頁面。

+0

謝謝你的回答。我會加倍努力,但目前還不行,因爲我的賬戶太新了。儘管我將Ihar的答案標記爲我的正式答案(他的答案更多地涉及我一直在尋找的內容,即Ancestry),但您的參考資料非常有用(特別是隨時可用的解決方案,因此我可以更好地瞭解它在實踐中的工作原理) 感謝您的幫助。 – user3154958