在我的应用程序中使用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'。 –