2010-10-12 111 views
48

我確實發現了一些關於Rails協會的問題,這些問題有點像我的問題,但對於我的生活,我似乎無法理解如何使用多個模型的belongs_toRails belongs_to許多模型

這裏的表結構我打算有:

User 
id 

Post 
id 
user_id #foreign key; a post belongs to a User aka "Who created this post" 

Comment 
id 
user_id #foreign key; a comment belongs to a User aka "Who made this comment" 
post_id #foreign key; a comment belongs to a Post aka "What post this comment is for" 

而且協會

User 
has_many :posts 
has_many :comments 

Post 
belongs_to :user 
has_many :comments 

Comment 
belongs_to :user 
belongs_to :post 

這是正確的做法?

+0

如何繼續執行備註保存? – 2017-08-08 12:21:06

+0

omg,自從我學習rails以來已經7年了(謝謝你!)。要回答你的問題@MosesNdeda,你將實例化一個評論,分配用戶和發佈對象,然後在Comment對象上調用'save'。 – Zabba 2017-08-11 05:47:49

回答

52

是的,這是正確的做法。

+0

這是否需要一個連接表或任何其他東西......或者它會像預期的那樣正常工作嗎? – Andrew 2010-10-13 04:47:36

+4

這些是一對多關係(一個用戶有很多帖子等),因此沒有。評論表應該如下所示:id user_id post_id和ofc內容或其他。 – Maxem 2010-10-13 09:17:09

+0

你可以鍵入has_many:posts,:評論 – Vasseurth 2011-07-13 21:27:50

8

儘管並不總是「最好」的方法,但rails提供了所謂的多態belongs_to關聯。它阻止你在數據庫中定義一個外鍵,因爲xxx_id列在許多可能的表中引用了一個id,而另一列指定了該表模型的名稱,但它使得該關係在rails中更加明確。此外,它限制模型只屬於其他模型之一,而不屬於一個或多個模型,因爲它會使用多個外鍵的設置而不需要額外的數據庫魔術。

相關問題