CanCanCan: как установить разрешения для каждого метода - PullRequest
0 голосов
/ 05 октября 2018

У меня есть модель Report и ReportsController.Есть несколько десятков действий.

Мне нужно установить разрешения на каждое действие контроллера для каждой роли.Как это реализовать?

1 Ответ

0 голосов
/ 05 октября 2018

В ability.rb вы можете иметь

if user.has_role?(:foo)
  can :some_custom_action, Report
end

if user.has_role?(:bar)
  can([:some_other_custom_action, :even_more_action], Report)
end

и authorize_resource проверит это, или для большего контроля вы можете позвонить authorize!(action_name.to_sym, @report || Report) в before_action

Такжепередать действие в accessible_by(current_ability, action_name.to_sym) scope

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...