【问题标题】:What is current_ability in CanCan's accessible_by (fetching records)?CanCan 的 access_by(获取记录)中的 current_ability 是什么?
【发布时间】:2010-07-30 05:34:29
【问题描述】:

在 CanCan 的文档中,它以这种方式显示 how to fetch all accessible records

@articles = Article.accessible_by(current_ability)

但是current_ability 是什么?我尝试传递用于身份验证和授权的当前用户,但出现此错误:

NoMethodError: undefined method `conditions' for #<User:0x1092a3b90>

我应该将什么传递给accessible_by 或者这里有什么问题?

【问题讨论】:

    标签: ruby-on-rails ruby scope authorization cancan


    【解决方案1】:

    可以使用current_ability 方法(以及其他方法)扩展ActionController::Base,这是您的ApplicationController 应该继承的类。因此,您问题中的示例代码应该按原样工作。

    【讨论】:

    • 您也可以使用您定义的技能类的实例传入您自己的技能。能力类是包含 CanCan::Ability 的类,你可以像这样使用它:Ability.new(current_user)
    • 我想很多人都问过自己这个问题。也许应该更新 wiki 文档?
    猜你喜欢
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多