Ruby on rails 此用户权限设置有意义吗?

Ruby on rails 此用户权限设置有意义吗?,ruby-on-rails,permissions,ruby-on-rails-3,roles,cancan,Ruby On Rails,Permissions,Ruby On Rails 3,Roles,Cancan,我正在构建一个Rails 3应用程序,我正在设计一个复杂的用户权限工具,公司用户为每个PM确定特定角色 想象一下这个场景——公司希望在三种类型的数据上建立特定的角色 项目表 客户表 公司账户(即公司表) 我正在考虑添加一个包含以下字段的角色多态表: 用户\u id(此角色适用的用户,除非所有\u用户==true) 项目类型(如“项目”、“客户”或“公司”,除非所有项目==true) 项目id(如上所述) 角色(例如“读取”、“编辑”、“销毁”甚至“自定义”) 所有用户(布尔值:此项的角色是

我正在构建一个Rails 3应用程序,我正在设计一个复杂的用户权限工具,
公司
用户为每个
PM
确定特定角色

想象一下这个场景——公司希望在三种类型的数据上建立特定的角色

  • 项目表
  • 客户表
  • 公司账户(即公司表)
我正在考虑添加一个包含以下字段的角色多态表:

  • 用户\u id(此角色适用的用户,除非所有\u用户==true)
  • 项目类型(如“项目”、“客户”或“公司”,除非所有项目==true)
  • 项目id(如上所述)
  • 角色(例如“读取”、“编辑”、“销毁”甚至“自定义”)
  • 所有用户(布尔值:此项的角色是否适用于所有用户)
  • 所有项目(布尔值:此用户的角色是否适用于所有项目)
  • 公司id(“拥有”此角色的公司)

我觉得CanCan将是一个很好的精益方式来实现这一点,但我的问题是。1.上表是这样做的好方法吗?2.CanCan能否与此结合以创建有效的解决方案?

您的表格似乎是实现非常复杂的授权方案的一种明智的方式,这似乎是您所追求的

就CanCan而言,是的,它将与此完美结合。CanCan所做的只是让您能够根据特定标准定义对操作、模型等的授权。这些标准可以是任何内容(例如,每月某日等),但通常与角色相关。因此,您所要做的就是根据角色表中的信息和将要评估的特定模型实例指定授权权限