Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.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 CanCan vs.Rails协会_Ruby On Rails_Associations_Cancan - Fatal编程技术网

Ruby on rails CanCan vs.Rails协会

Ruby on rails CanCan vs.Rails协会,ruby-on-rails,associations,cancan,Ruby On Rails,Associations,Cancan,我想我已经对坎坎的力量感到困惑 我问了一个更长的问题-。但在一位委员的建议下,我简化了我的问题,我认为这是我的最终问题 简而言之,用户在网络中具有角色。用户也可以创建事件,但是,他们可以查看/编辑的事件都基于该角色。如果用户失去了其角色,他们将无法再访问事件 此外,如果删除了创建事件的用户和/或角色,则事件仍将存在于网络中,并且所有用户在其角色中拥有足够高的权限(管理员、经理等) 我可以使用CanCan通过测试用户的角色来确定用户是否有权访问事件。那部分很好用 但从概念上讲,如果我使用CanCa

我想我已经对坎坎的力量感到困惑

我问了一个更长的问题-。但在一位委员的建议下,我简化了我的问题,我认为这是我的最终问题

简而言之,
用户
网络
中具有
角色
用户
也可以创建
事件
,但是,他们可以查看/编辑的
事件都基于该
角色
。如果
用户
失去了其
角色
,他们将无法再访问
事件

此外,如果删除了创建
事件的
用户
和/或
角色
,则
事件
仍将存在于
网络
中,并且所有
用户
在其
角色
中拥有足够高的权限(管理员、经理等)

我可以使用CanCan通过测试
用户的
角色
来确定
用户是否有权访问
事件
。那部分很好用

但从概念上讲,如果我使用CanCan控制对
事件
的控制器操作的访问,以及
事件
是否基于
can:read
显示在视图中,是否需要rails
有很多:通过
用户与
事件之间的关联?由于从技术上讲,
用户
仅通过
网络
中的
角色
连接到
事件
,我可以将其留给CanCan来控制访问,还是需要关联。有这样一种方法好吗

def events
  ... # info for grabbing all events user has access to?
end

或者这也是不必要的?

您不需要使用has\u many:through

看看:


您可以为用户分配不同的角色,并使用他们在我刚刚发布的wiki中所说的内容检查权限

,这样用户和事件之间就没有正式关联了?这是可以接受的/良好的rails实践吗?如果你做了一个正常的关联,比如用户有很多:事件呢?把这种关系限制在坎坎?这对你有用吗?还是你需要更具体的东西?