2012-12-05 75 views
0

我想我已经走了,并且迷惑了Cancan的力量。CanCan与Rails Association

我在这里问了一个更长的问题 - Rails has_many :through, null belongs_to, multiple belongs_to and deletion of belongs_to?。但根据其中一位成员的建议,我简化了我的问题,我认为这是我最终的问题。

简而言之,UserNetwork中有Role。 A User也可以创建Events,但是,他们可以看到/编辑的Events都基于Role。如果User失去Role,他们将无法再访问Event

此外,如果创建了Event除去User和/或Role,在Event仍将存在于Network,并给所有Users可见在他们的Role足够高的权限(管理员,经理等) 。

我可以使用CanCan来确定User是否可以通过测试其Role来访问Event。那部分工作正常。

但更多的概念,如果我使用惨惨同时控制访问,为Events控制器行动以及是否将Event甚至显示在基于can :read来看,是有需要的轨道has_many :throughUsersEvents之间的关联?由于技术上User只通过RoleEvent连接Network,我可以将它留给CanCan来控制访问,或者我需要一个关联。有没有像这样的方法:

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

或者这也是不必要的?

回答

1

你不需要使用的has_many:通过

看看:https://github.com/ryanb/cancan/wiki/defining-abilities

可以使用他们说什么在维基我刚刚张贴分配的用户和检查权限不同的角色

+0

那么用户和事件之间没有正式的关联?这是可以接受的/好的铁轨练习? – dewyze

+0

如果您执行像用户has_many这样的正常关联:events?并限制CanCan上的关系?这会对你有用吗?还是你需要更具体的东西? –