我使用設計並創建了兩個模型,Doctor和Patient。 當我寫load_and_authorize_resource
康康舞給出了一個例外我可以使用康燦與許多資源?
undefined local variable or method `current_user
如何使用康康舞爲他們兩個?
我使用設計並創建了兩個模型,Doctor和Patient。 當我寫load_and_authorize_resource
康康舞給出了一個例外我可以使用康燦與許多資源?
undefined local variable or method `current_user
如何使用康康舞爲他們兩個?
有一個在應用程序控制器稱爲current_ability
方法,你可以簡單地覆蓋它。
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
這將允許初始化方法在應用程序/模型/ ability.rb根據情況接收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
日Thnx。 但只需要定義方法(在我的情況下設計爲:醫生和devise_for:患者) def current_user return current_doctor || current_patient 結束 – Andrey 2011-03-05 21:27:54
是的,這只是一個全面的幫助,因爲它可能不是唯一缺少的東西。 – tommasop 2011-03-06 11:42:37