1
我正在使用CanCan創建基於角色的管理系統。它是網上商店的一種模板,所以管理員可以在他/她訪問的每個網上商店中扮演不同的角色。例如:在網上商店1他是主持人,在網上商店2他是一名編輯。在CanCan的Ability Class中調用方法時出現NameError
因此,我需要在CanCan的能力類中做的是檢查當前用戶在當前商店(current_shop)中具有什麼樣的角色。我寫了這個:
class Ability
include CanCan::Ability
def initialize(admin)
if admin.supervise?(current_shop, controller_gsub)
can :manage, :all
elsif admin.manage?(current_shop, controller_gsub)
can :manage, :all
elsif admin.access?(current_shop, controller_gsub)
can :read, :all
end
end
end
的問題是,我似乎無法調用從能力類的current_shop方法,因爲我得到這個錯誤:
undefined local variable or method `current_shop' for #<Ability:0x104df38b0>
有誰知道如何去了解這個? Thanx提前!
Thanx爲您的答案!我現在正在工作;)業務邏輯:管理員可以爲店鋪中的每個模型分配不同的角色,併爲每個店鋪分配不同的角色。因此,他/她可以在店鋪1中擔任「訂單」的主管,並且只在店鋪2中擁有「訂單」的讀者。:) –