Rails,康康康的能力

Rails, abilities with cancancan

我正在使用 cancancan 来定义我的演示餐厅应用程序的功能。每个餐厅 has_many 名员工和每个员工都有 user_idrole 属性。我想允许用户编辑餐厅 仅当 这家餐厅有一名员工 user_id 作为 current_user.id 并且他的角色是 'manager' .我的问题是这个角色可以分配给很多员工,当我通过

找到他们时
can :edit, Restaurant do |restaurant|
    restaurant.employees.where(role: 'Manager').id=user.id 
end

我会得到所有经理的数组,但此代码不会 return 正确。关于如何实现这个的任何想法:?谢谢!

您可能正在寻找更像这样的东西:

can :edit, Restaurant do |restaurant|
  restaurant.employees.where(role: 'Manager', user_id: user.id).exists?
end