我想我已经走了,并且迷惑了Cancan的力量。CanCan与Rails Association
我在这里问了一个更长的问题 - Rails has_many :through, null belongs_to, multiple belongs_to and deletion of belongs_to?。但根据其中一位成员的建议,我简化了我的问题,我认为这是我最终的问题。
简而言之,User
在Network
中有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 :through
Users
和Events
之间的关联?由于技术上User
只通过Role
Event
连接Network
,我可以将它留给CanCan来控制访问,或者我需要一个关联。有没有像这样的方法:
def events
... # info for grabbing all events user has access to?
end
或者这也是不必要的?
那么用户和事件之间没有正式的关联?这是可以接受的/好的铁轨练习? – dewyze
如果您执行像用户has_many这样的正常关联:events?并限制CanCan上的关系?这会对你有用吗?还是你需要更具体的东西? –