0

我正在用 ruby​​ on rails 开发一个应用程序,我已经到了不知道什么是休闲场景的最佳解决方案的地步。到目前为止,我能够创建用户、创建项目、关联用户(类似于在 FB 上),我能够邀请用户访问我的网站,现在我想允许用户对他们创建的项目授予不同级别的访问权限,给其他用户(类似于 github)。此外,创建帐户后的用户将获得超级管理员的角色,这样他们就可以管理他们的项目,或将项目分配给他们的同事。因此,这将是我在 cancan 和声明式授权之间的最佳选择。如果我将使用 cancan 或声明式授权,我还需要一个存储 user_id、role_id 和 project_id 的表吗?

谢谢


我会更好地解释我的问题。到目前为止,我有能够创建项目的用户(有设计)。因此,如果 user1 创建项目 A 并且项目 BI 想要他,则能够在项目 A 上为 user2 分配角色 admin,在项目 B 上分配 user2 为主持人角色。我正在考虑创建一个 UserRoleProject 链接表,这是一个好主意? 或者,如果没有,请帮助我一些指示。

该操作类似于,User1 从列表 user2 中选择,从另一个列表中选择一个项目(由 user1 创建),然后选择 user2 在该项目中的角色。

任何用户都可以对他们的项目执行相同的操作。还将有 n 个项目和 n 个用户以及 3 个访问级别(管理员、版主、访客)

谢谢

4

1 回答 1

0

我曾经制作了一个包含多个角色的大型应用程序,每个角色都有其可用的操作集,我使用了 devise 和 cancan,它们的工作原理非常棒,它们集成得很好,并且都有很好的文档。

对于另一个问题,你可以做这样的事情

项目型号:

has_one :user
has_many :collaborators, :through => :team

团队模式:

belongs_to :user
belongs_to :project
于 2013-07-19T16:56:14.690 回答