0

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

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

4

1 回答 1

0

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

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

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

其中viewing_deletes 是评论的范围,它查找“已删除”的评论以及其余为真的评论,只有未删除的评论为假。

于 2013-10-17T21:52:01.987 回答