一个用户可以创建一个“组”,其他用户可以加入。每个组都有自己的管理员和版主等,可以做一些事情,比如创建帖子、邀请用户等。
我认为这里应该使用“has_many through”,但不确定授权,因为角色基于不同的组。CanCan 中设置的角色似乎不适合它,管理员仅适用于一组,而不是整个站点。
一个用户可以创建一个“组”,其他用户可以加入。每个组都有自己的管理员和版主等,可以做一些事情,比如创建帖子、邀请用户等。
我认为这里应该使用“has_many through”,但不确定授权,因为角色基于不同的组。CanCan 中设置的角色似乎不适合它,管理员仅适用于一组,而不是整个站点。
似乎是用户与其角色之间的混淆。一个“组”有许多“用户”。“用户”对组“ALPHA”具有一个(或多个)“角色”(管理员)。“用户”可能在另一个组“DELTA”上具有另一个角色(“侦听器”)。
Admin 是一个角色,Moderator 和 listener 是相同的角色。
你必须创建像 user.is_admin_of?(GroupObject) 这样的角色所以第一步是创建角色https://github.com/timonv/rollable