导轨,cancancan的能力

时间:2016-03-31 13:45:57

标签: ruby-on-rails block roles cancan cancancan

我使用cancancan来定义我的演示餐厅应用程序的功能。每个餐厅都有很多员工,每个员工都有 user_id 角色属性。我想允许用户编辑餐厅仅当此餐厅的员工使用user_id作为current_user.id并且他的角色是“经理”时。我的问题是,当我通过

找到它们时,可以给很多员工这个角色
can :edit, Restaurant do |restaurant|
    restaurant.employees.where(role: 'Manager').id=user.id 
end

我会得到一个所有管理器的数组,这段代码不会返回true。有关如何实现这一点的任何想法:谢谢!

1 个答案:

答案 0 :(得分:2)

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

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