在Rails App中添加“共同作者”功能的最佳方法是什么?

时间:2012-04-28 11:32:42

标签: ruby-on-rails arrays ruby-on-rails-3 attributes

我正在使用Rails 3,我有一个名为User的模型,它编写了一个教学大纲。我想添加“共同创作”一个教学大纲的功能,因此原作者可以邀请其他用户对内容进行更改。

以下哪些选项更有意义? (如果有更好的东西,请告诉我)

  1. 使作者属性成为数组属性,以便Syllabus.author成为包含其所有作者的数组

  2. 为教学大纲创建其他属性,例如coauthor1,coauthor2

  3. 如果第一个更有意义,您是否能够具体描述如何使其成为数组属性,并在以后插入其他作者?

    我考虑第二种选择的一个原因是因为这样可以区分原作者和其他共同作者,也许只允许原作者删除教学大纲,而其他共同作者的权限有限? / p>

2 个答案:

答案 0 :(得分:1)

你也可以像这样制作链接表:

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

答案 1 :(得分:1)

您需要规范化数据库。我想你想为作者和教学大纲设置单独的模型,并通过has_many_through关系将它们链接起来。然后,您的链接表可以包含有关特定关系的其他信息,例如作者是否是原作者。