Cancan的accessible_by是我即时更改管理范围的最佳选择吗?



>情况:在我的网站上,我有一个评论模型,有一个已删除的字段。用户看不到已删除的评论,但我希望允许管理员查看已删除的评论(如果他们选择的话)。这将通过为具有管理员角色的用户提供一个范围来实现,该范围允许他们查看已删除字段设置为 false 和 true 的注释。

问:Cancan的accessible_by方法是否是我的最佳选择?从我所读到的内容来看,这听起来会促进我正在尝试做的事情,但是,如果有更好的方法,我不想实现效率低下的东西。

为了分离查询以仅根据角色提取所需的记录,accessible_by非常适合这种情况。

如果您想让他们(管理员)选择查看或不查看已删除的评论,那么仅accessible_by范围可能还不够,最好使用带有开关的accessible_by在模型上创建范围,以确定他们是否选择查看或不查看已删除的评论。

@user.comments.viewing_deletes(true).accessible_by(current_ability)

其中viewing_deletes是注释的范围,用于查找"已删除"的注释以及 true 的其余注释和仅未删除的 false 注释。

最新更新