Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 用户角色<&燃气轮机;基于项目_Ruby On Rails_Activerecord_Ruby On Rails 3_Devise_Cancan - Fatal编程技术网

Ruby on rails 用户角色<&燃气轮机;基于项目

Ruby on rails 用户角色<&燃气轮机;基于项目,ruby-on-rails,activerecord,ruby-on-rails-3,devise,cancan,Ruby On Rails,Activerecord,Ruby On Rails 3,Devise,Cancan,目前我正在使用Desive&CanCan,它允许我创建 使用(Roles\u Users)表具有角色的用户 这很好,但我想要的是在我的应用程序中有项目,并且 每个项目都有一个用户角色,例如(管理员、查看器、, etc)即,角色不会分配给用户,而是根据用户所属的项目分配给用户 示例: 用户X属于具有管理员角色的项目A 用户X属于具有来宾角色的项目B 用户Y属于具有观察者角色的项目B 什么样的模式适用于此 模型 使用者 有很多:项目 项目 ? 角色 ? 用户\角色\项目(用户\ id、项目\

目前我正在使用Desive&CanCan,它允许我创建 使用(Roles\u Users)表具有角色的用户

这很好,但我想要的是在我的应用程序中有项目,并且 每个项目都有一个用户角色,例如(管理员、查看器、, etc)即,角色不会分配给用户,而是根据用户所属的项目分配给用户

示例:

  • 用户X属于具有管理员角色的项目A
  • 用户X属于具有来宾角色的项目B
  • 用户Y属于具有观察者角色的项目B
什么样的模式适用于此

模型

使用者 有很多:项目 项目 ? 角色 ?

用户\角色\项目(用户\ id、项目\ id、角色\ id)

你觉得怎么样?我是个新手,需要理解和理解
想想你们这些经验丰富的人。谢谢

你应该看看《有很多:通过》。此Railscast将帮助您启动并运行:

例如,您可以让用户通过成员身份拥有许多项目(我相信您可以想出一个更好的名称!)

您的用户模型将包含标准用户详细信息,项目模型将包含项目详细信息,并且您可能在某个地方有一些角色模型(我没有使用您提到的任何一个库,因此我无法对它们的工作方式进行评论)。关键是会员模式


成员资格模型将包含userID、projectID和roleID。在数据库中,任何给定的userID和projectID配对应该只有一个实例,因此通过将roleID存储在该配对旁边,您可以将角色分配给指定项目中的该用户。

您是否试图了解模型和关联应该是什么样的,或者查看如何在CanCan或两者中进行设置?这就是令人惊叹的。你熟悉坎坎舞吗?我很好奇如何将CanCan与上面的会员模式结合使用。想法?我以前没用过CanCan,但是快速看一下Railscast,它看起来不是你不能用的。据我所知,初始化方法只需要一个用户。如果没有对项目的引用,我看不出您如何应用特定于项目的权限。当然,我可能是错的-我与坎坎的经验是~15分钟!:-)