0

我正在使用 rails 2.3 构建一个简单的项目协作工具。身份验证使用 Restful Authentication 插件处理,并使用 Role Requirement 插件进行角色管理。

我需要创建用户协作。例如,当授权用户登录时,用户可以创建一个属于用户的团队,因此团队可以登录并创建/编辑/更新/删除用户的数据。因此,每个用户都可以创建团队进行协作。

我在尝试中尝试了邀请模型;用户可以邀请另一个用户(带有invitation_id)然后我用(invitation_id)过滤控制器/查找器。如果受邀用户登录,只能看到邀请用户的数据。但这不利于可管理性并创建复杂的代码库。

我怎样才能实现这样的用户协作系统?那么最好的做法是什么。

谢谢

4

1 回答 1

3

我可能会创建has_and_belongs_to_many用户的协作或项目类。

class Collaboration
  has_and_belongs_to_many :users
end

您还可以为协作所有者和成员设置不同的 ActiveRecord 关系(如果这适合您的业务逻辑。)

例如

class Collaboration
  belongs_to :owner, :class_name => 'User'
  has_and_belongs_to_many :members, :class_name => 'User'
end

通常最好的做法是尽可能多地将这种逻辑排除在控制器(和模型中)之外。请参阅http://weblog.jamisbuck.org/2006/10/18/skinny-controller-fat-model

于 2009-11-15T04:04:38.837 回答