我有一個幾乎像博客一樣工作的rails應用程序,我使用標記系統對帖子進行分類。Rails博客和帖子鏈接
我需要添加一些類似於「相關帖子」功能的帖子。
因此,例如,如果帖子1與帖子4相關,則在帖子1的顯示操作結束時,我想呈現帖子4的圖像並且同時在帖子4的結尾處顯示帖子的圖像1.
我的想法是創建一個與鏈接模型具有HABTM關係的「鏈接」模型,但我不確定「帖子」是否有多個「鏈接」槽「鏈接」會更好。 這兩個想法似乎都有相同的結果,所以我應該選擇哪種方法?
我有一個幾乎像博客一樣工作的rails應用程序,我使用標記系統對帖子進行分類。Rails博客和帖子鏈接
我需要添加一些類似於「相關帖子」功能的帖子。
因此,例如,如果帖子1與帖子4相關,則在帖子1的顯示操作結束時,我想呈現帖子4的圖像並且同時在帖子4的結尾處顯示帖子的圖像1.
我的想法是創建一個與鏈接模型具有HABTM關係的「鏈接」模型,但我不確定「帖子」是否有多個「鏈接」槽「鏈接」會更好。 這兩個想法似乎都有相同的結果,所以我應該選擇哪種方法?
HABTM本質上非常簡單,只需一張外鍵對的表格即可。
通常在使用has_many
時需要向該連接關係添加附加屬性,和/或需要將連接視爲自己的模型。
以您的情況爲例,您可能希望鏈接按創建順序顯示。爲了實現這一點,您需要將創建時間戳存儲在關係中。爲此,簡單的HABTM連接表是不夠的,因此您切換到has_many
並創建一個Linking
模型來封裝連接。
要繼續該示例,您還可以使Linking
成爲一流資源,並且有一個頁面,您可以從鏈接的Post
單獨編輯/添加/刪除它們。
就我個人而言,在大多數情況下,我總是使用has_many
。它只是感覺更潔淨我(沒有自動命名錶魔法接受或重寫,鏈接更明顯),我發現,經常,加入關係確實是一流的公民。
這真的很有道理,謝謝! – TopperH