我正在使用rails 2.3构建一个简单的项目协作工具。身份验证使用Restful身份验证插件进行处理,并使用角色需求插件进行角色管理。
我需要创建用户协作。例如,当一个授权用户登录时,用户可以创建一个属于用户的团队,这样团队就可以登录并创建/编辑/更新/删除用户的数据。这样每个用户都可以创建团队进行协作。
我尝试了邀请模式,在我的尝试中,用户可以邀请,另一个用户(使用invitation_id),然后我使用(invitation_id)过滤控制器/查找器。如果被邀请用户登录,则只能看到邀请方用户的数据。但这对可管理性并不好,而且会创建复杂的代码库。
我怎样才能实现这样的用户协作系统?那么,它的最佳实践是什么呢?
谢谢
发布于 2009-11-15 12:04:39
我可能会创建一个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。
https://stackoverflow.com/questions/1736511
复制相似问题