在cancan中,如何检查是否可以?管理给定模型的每条记录
- 我的管理员
可以:管理、Widget
- 我的用户
可以:管理、Widget、:user_id => user.id
- 在我看来,只有当前用户可以管理每个 Widget 记录时,我才想显示链接。
- My admin
can :manage, Widget
- My user
can :manage, Widget, :user_id => user.id
- In my view, I want to show a link only if the current_user can manage each and every Widget record.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
一般来说?
可以吗? :manage, Widget
如果您指的是对现有记录的一些检查,这听起来像是一个设计缺陷,但这应该可行。请注意,如果您采用的是这种方法,则在进行此检查后,您会遇到与创建的其他
Widget
记录的竞争条件。(可以?:管理,小部件)|| (Widget.count == Widget.count(:conditions => ["user_id == ?", current_user.id]))
In general?
can? :manage, Widget
If you're referring to some check on existing records, that sounds like a design flaw, but this should work. Note that if this is the approach you're taking, you have a race condition with other
Widget
records being created after you make this check.(can? :manage, Widget) || (Widget.count == Widget.count(:conditions => ["user_id == ?", current_user.id]))