Ruby on rails Rails:如何检查特定用户是否具有使用CanCan的能力

Ruby on rails Rails:如何检查特定用户是否具有使用CanCan的能力,ruby-on-rails,ruby,authorization,cancan,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

我知道当你想检查能力的时候,你会的

can :read, Project, id:3
但是,如果我想创建一个显示所有能够阅读Project#3的用户的页面,该怎么办

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

差不多

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

Cancan有相关文档:

根据您的示例:

include CanCan::Ability
project = Project.find(3)
User.all.each do |u|
    if u.can? :read, project
      #print the user or something
    end
end

Cancan有以下文件:

根据您的示例:

include CanCan::Ability
project = Project.find(3)
User.all.each do |u|
    if u.can? :read, project
      #print the user or something
    end
end

Cancan有以下文件:

根据您的示例:

include CanCan::Ability
project = Project.find(3)
User.all.each do |u|
    if u.can? :read, project
      #print the user or something
    end
end

Cancan有以下文件:

根据您的示例:

include CanCan::Ability
project = Project.find(3)
User.all.each do |u|
    if u.can? :read, project
      #print the user or something
    end
end

似乎有一个关于这个问题的维基:


似乎有一个关于这个问题的维基:


似乎有一个关于这个问题的维基:


似乎有一个关于这个问题的维基:


您可以检查以下内容:

Ability.new(u).can? :read, project

您可以通过以下方式进行检查:

Ability.new(u).can? :read, project

您可以通过以下方式进行检查:

Ability.new(u).can? :read, project

您可以通过以下方式进行检查:

Ability.new(u).can? :read, project


上面的代码不起作用吗?若然,原因为何?你有错误吗?结果是否与您预期的不一样?上面的代码是否不起作用?若然,原因为何?你有错误吗?结果是否与您预期的不一样?上面的代码是否不起作用?若然,原因为何?你有错误吗?结果是否与您预期的不一样?上面的代码是否不起作用?若然,原因为何?你有错误吗?结果是否不像您预期的那样?我仔细阅读了文档,但没有看到“u.can?”语法。我来试试这个。谢谢我认为“u.can?”的语法不起作用。它给了我一个错误:undefined method can?@kibaekr我很抱歉,通常当我做这样的事情时,我是在一个abilities.rb文件中做的,我总是有这样一行:
include CanCan::Ability
——你必须在orer中包含该模块才能在用户对象上使用
can?
方法。我已经更新了上面示例中的代码。我通读了文档,但没有看到“u.can?”语法。我来试试这个。谢谢我认为“u.can?”的语法不起作用。它给了我一个错误:undefined method can?@kibaekr我很抱歉,通常当我做这样的事情时,我是在一个abilities.rb文件中做的,我总是有这样一行:
include CanCan::Ability
——你必须在orer中包含该模块才能在用户对象上使用
can?
方法。我已经更新了上面示例中的代码。我通读了文档,但没有看到“u.can?”语法。我来试试这个。谢谢我认为“u.can?”的语法不起作用。它给了我一个错误:undefined method can?@kibaekr我很抱歉,通常当我做这样的事情时,我是在一个abilities.rb文件中做的,我总是有这样一行:
include CanCan::Ability
——你必须在orer中包含该模块才能在用户对象上使用
can?
方法。我已经更新了上面示例中的代码。我通读了文档,但没有看到“u.can?”语法。我来试试这个。谢谢我认为“u.can?”的语法不起作用。它给了我一个错误:undefined method can?@kibaekr我很抱歉,通常当我做这样的事情时,我是在一个abilities.rb文件中做的,我总是有这样一行:
include CanCan::Ability
——你必须在orer中包含该模块才能在用户对象上使用
can?
方法。我已经更新了上面示例中的代码。上次更新wiki条目是在大约2年前。
CanCan
项目现在具有
功能
模块。您可以
包括CanCan::Ability
来访问这些功能。@Ecnalyr我认为这不起作用-当我遵循我发布的链接时,它起作用了,但在使用更新的解决方案时,它说“undefined method`can'”wiki条目上次更新是在~2年前。
CanCan
项目现在具有
功能
模块。您可以
包括CanCan::Ability
来访问这些功能。@Ecnalyr我认为这不起作用-当我遵循我发布的链接时,它起作用了,但在使用更新的解决方案时,它说“undefined method`can'”wiki条目上次更新是在~2年前。
CanCan
项目现在具有
功能
模块。您可以
包括CanCan::Ability
来访问这些功能。@Ecnalyr我认为这不起作用-当我遵循我发布的链接时,它起作用了,但在使用更新的解决方案时,它说“undefined method`can'”wiki条目上次更新是在~2年前。
CanCan
项目现在具有
功能
模块。您可以
包括CanCan::Ability
来访问这些功能。@Ecnalyr我认为这不起作用-当我遵循我发布的链接时,它起作用了,但在使用更新的解决方案时,它会对#说“undefined method`can'”