我想我已经对 CanCan 的力量感到困惑。
我在这里问了一个更长的问题-Rails has_many :through、null belongs_to、多个 belongs_to 和删除 belongs_to?. 但在其中一位成员的建议下,我用我认为最终的问题简化了我的问题。
简而言之, aUser
在 aRole
中有 a Network
。AUser
也可以创建Events
,但是,Events
他们可以看到/编辑的都是基于那个Role
。如果 aUser
丢失了他们Role
,他们将无法再访问Event
.
此外,如果创建的User
和/或被删除,则遗嘱仍然存在于 中,并且对所有具有足够高权限(管理员、经理等)的.Role
Event
Event
Network
Users
Role
我可以使用 CanCanUser
通过Event
测试他们的Role
. 那部分工作正常。
但从概念上讲,如果我使用 CanCan 来控制对控制器操作的访问Events
以及是否Event
甚至显示在基于 的视图中can :read
,是否需要在和has_many :through
之间建立 rails 关联?由于技术上仅通过 a连接到a ,我可以将它留给 CanCan 来控制访问,还是我需要一个关联。有这样的方法会很好:Users
Events
User
Event
Role
Network
def events
... # info for grabbing all events user has access to?
end
或者这也没有必要?