我的能力课上有这样的东西
def initialize(staff)
staff ||= Staff.new
can :manage, Store do |store|
store.staff_privileges.select(&:owner?).map(&:staff_id).include? staff.id
end
end
我不确定为什么staff.can? :manage
会在这里返回 true,因为我认为上面的块应该只在 store 的实例上执行,而不是在类本身上执行
staff = Staff.first
staff.can? :manage, Store #true
staff.can? :manage, Store.first #false, because there is no staff_privileges associated to this store