我知道你什么时候想检查这种能力,
can :read, Project, id:3
但是,如果我想创建一个显示所有可以阅读Project#3的用户的页面,该怎么办?
在该页面中,我如何向所有用户显示:对特定项目的读取权限?
像
这样的东西 <% User.all.each do |u| %>
<% if u can :read, Project, id:3 %>
<%= u.name %>
<% end %>
<% end %>
答案 0 :(得分:2)
您可以查看:
Ability.new(u).can? :read, project
答案 1 :(得分:1)
Cancan有这方面的文档:https://github.com/ryanb/cancan/wiki/Checking-Abilities
根据您的示例:
include CanCan::Ability
project = Project.find(3)
User.all.each do |u|
if u.can? :read, project
#print the user or something
end
end
答案 2 :(得分:0)
看起来这个问题上有一个wiki:
https://github.com/ryanb/cancan/wiki/ability-for-other-users