0

我的应用程序中有表用户和主题。创建主题的用户具有该主题的全部权限,并且该用户可以授予其他用户访问或编辑的权限。如何在 cancan 中实现这个结构。我想要类似的东西

can? :edit, @topic

can :edit, Topic do |topic|
//get object @topic i pass above, and check current user has ability to edit this topic
end

我想用 topic_id 和 user_id 创建新的表名 topic_share。主题和用户之间的多对多关系。我不知道如何在cancan中实现它。

4

2 回答 2

0

如果您在主题表上有某种形式creator_id,您可以在 cancan 中执行以下操作(假设您的能力围绕用户记录,creator_id 是创建主题的用户的 id,主题属于用户)

can :edit, Topic, creator_id: user.id
于 2013-03-05T11:11:40.717 回答
0

我知道这不是一个直接的答案,但您可能想看看我创建的这个 gem:https ://github.com/intrepidd/rails-canhaz

它允许在任何模型之间轻松创建权限。

于 2013-03-05T11:19:13.517 回答