gpt4 book ai didi

ruby-on-rails-3 - 我可以将 cancan 与许多资源一起使用吗?

转载 作者:行者123 更新时间:2023-12-01 01:30:28 24 4
gpt4 key购买 nike

我使用设计并创建了两个模型,医生和患者。
当我写 load_and_authorize_resource康康给出了一个异常(exception)

undefined local variable or method `current_user

我怎样才能对他们两个都使用 cancan?

最佳答案

有一个方法叫current_ability在应用程序 Controller 中,您可以简单地覆盖它。

Changing current_ability documentation

它看起来像这样

def current_ability
@current_ability ||= Ability.new(current_user)
end

但是你可以把它改成
def current_ability
if current_doctor
@current_ability ||= Ability.new(current_doctor)
else
@current_ability ||= Ability.new(current_patient)
end
end

这将允许 app/models/ability.rb 中的 initialize 方法根据情况接收 current_patient 或 current_doctor 。
你可以自定义它看起来像这样
class Ability
include CanCan::Ability

def initialize(resource)
if resource.class == Patient
can, Read Something
can, Edit Other
.
.
.
else
can, Read Something
can, Edit Other
.
.
.
end
.
.
.

希望对你有所帮助,你也可以看看康康 Full doc

关于ruby-on-rails-3 - 我可以将 cancan 与许多资源一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5185621/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com