2016-03-31 2 views
1

Я использую cancancan для определения способностей для своего приложения для демонстрационного ресторана. В каждом ресторане есть работники и каждый сотрудник имеет user_id и Роль атрибутов. Я хотел бы разрешить пользователю отредактировать ресторан , только если этот ресторан имеет сотрудника с user_id как current_user.id, а его роль - «менеджер». Моя проблема заключается в том, что эта роль может быть дана много сотрудников, и когда я нахожу ихРельсы, способности с cancancan

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

Я хотел бы получить массив всех менеджеров и этот код не будет возвращен истиной. Любые идеи о том, как реализовать это:? Благодаря!

ответ

2

Вы, вероятно, ищете что-то вроде этого:

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

Вы рок! благодаря –

Смежные вопросы