0

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

我在这里问了一个更长的问题-Rails has_many :through、null belongs_to、多个 belongs_to 和删除 belongs_to?. 但在其中一位成员的建议下,我用我认为最终的问题简化了我的问题。

简而言之, aUser在 aRole中有 a Network。AUser也可以创建Events,但是,Events他们可以看到/编辑的都是基于那个Role。如果 aUser丢失了他们Role,他们将无法再访问Event.

此外,如果创建的User和/或被删除,则遗嘱仍然存在于 中,并且对所有具有足够高权限(管理员、经理等)的.RoleEventEventNetworkUsersRole

我可以使用 CanCanUser通过Event测试他们的Role. 那部分工作正常。

但从概念上讲,如果我使用 CanCan 来控制对控制器操作的访问Events以及是否Event甚至显示在基于 的视图中can :read,是否需要在和has_many :through之间建立 rails 关联?由于技术上仅通过 a连接到a ,我可以将它留给 CanCan 来控制访问,还是我需要一个关联。有这样的方法会很好:UsersEventsUserEventRoleNetwork

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

或者这也没有必要?

4

1 回答 1

1

您不需要使用 has_many :through

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

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

于 2012-12-05T18:51:27.733 回答