Можно ли использовать Cancan для ограничения доступа к определенным значениям для одной модели? - PullRequest
2 голосов
/ 05 октября 2010

У меня есть приложение Rails 3 с категориями.Категория может управляться кем-либо с ролью владельца категории.Но владелец категории должен иметь доступ только к тем категориям, которые ему принадлежат, а не к другим.Я могу заблокировать функции администратора с помощью CanCan, но мне нужно ограничить сами определенные категории.

1 Ответ

5 голосов
/ 05 октября 2010

Вы можете сделать это одним из двух способов.

Вы можете указать хэш атрибутов, чтобы ограничить доступ в вашем Ability классе.

can :manage, Category, :user_id => user.id

Или вы можете использовать блок:

can :manage, Category do |c|
  c && c.user_id == user.id
end

Они оба проверяют, совпадает ли атрибут user_id в категории, с которой вы проверяете, от пользователя, которого вы проверяете.

Это описано в Определение способностей с помощью хэшей и Определение способностей с помощью блоков соответственно в документации CanCan.

...