在CanCan中,能力被分配给单个用户。有能力记录时,有没有办法访问该用户。
我希望能够说:
@ability = Ability.new(User.find(3))
@ability.based_on_user # Does not exist, but would respond with the same thing as User.find(3)
在我的应用中,用户可以冒充其他用户,这涉及重置@current_ability = Ability.new(@impersonated_user)
,并且我希望能够快速让该用户进行调试。文档没有给出任何这样的方法,但是我可以使用hack,因为它只是出于我自己的测试目的。
答案 0 :(得分:1)
只需将您的方法添加到您的能力模型中即可。像这样:
# in app/models/ability.rb
class Ability
include CanCan::Ability
def initialize(user)
@user = user
# the rest of your code
end
def based_on_user
@user
end
end