在我的應用程序中使用CanCan我有權限,用戶可以查看和創建商店,但我也希望他們只能編輯他們創建的商店。用戶可以根據自己的喜好創建任意數量的商店,這些應該都可以由他們編輯。一家商店沒有用戶,所以我怎麼能做到這一點,當他們沒有user_id
除了Store
表?如何讓用戶編輯資源不屬於用戶時創建的資源,但不編輯他人資源?
慘慘:
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new
if user.role == "default"
can :read, Store
can :create, Store
end
end
end
覆蓋模型中的'initialize'方法令人不悅。正確的方法是使用'after_initialize'回調。這是因爲ActiveRecord並不總是調用'initialize'。 –