2012-04-28 26 views
1

我正在使用Rails 3,並且我有一個名爲User的模型,它編寫了一個教學大綱。我想添加「共同創作」教學大綱的功能,因此原作者可以邀請其他用戶對內容進行更改。將「共同作者」功能添加到Rails應用程序的最佳方法是什麼?

下面哪些選項更有意義? (如果有更好的東西,請讓我知道)

  1. 讓筆者屬性數組屬性,以便於Syllabus.author應該是一個包含其所有的作家組成的數組

  2. 創造教學大綱額外屬性如coauthor1,coauthor2

如果第一個更有意義,你就可以進行具體說明我將如何讓一個數組屬性,後來插入其他作家?

我考慮第二個選擇的原因之一是,原來的作者和其他合作作者之間會有區別,可能只有原作者刪除了教學大綱,而其他合着者的權限有限?

回答

1

您也可以作出這樣的連接表:

autorhs_syllabus 
---------------------- 
id 
author_id integer 
syllabus_id integer 
original_author boolean 
+0

感謝您的回答!那麼如何檢查某人是否是特定教學大綱的作者?我將不得不找到syllabus.id,然後查找當前用戶是否與authors_syllabus.syllabus位於同一行?它在我的腦海中是有意義的,但我現在有一個腦屁。 – kibaekr 2012-04-29 01:28:01

1

您需要規範化數據庫。我認爲你想爲作者和教學大綱建立單獨的模型,並通過has_many_through關係鏈接它們。然後,您的鏈接表可以包含有關特定關係的其他信息,例如作者是否是原作者。

相關問題