Rails:如何使用CanCan检查某个用户是否具有使用能力

时间:2014-01-22 20:27:25

标签: ruby-on-rails ruby authorization cancan

我知道你什么时候想检查这种能力,

can :read, Project, id:3

但是,如果我想创建一个显示所有可以阅读Project#3的用户的页面,该怎么办?

在该页面中,我如何向所有用户显示:对特定项目的读取权限?

这样的东西
 <% User.all.each do |u| %>
   <% if u can :read, Project, id:3 %>
     <%= u.name %>
   <% end %>
 <% end %>

3 个答案:

答案 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