CanCanCan: как установить разрешения для каждого метода
У меня есть модель Report и ReportsController. Есть пара десятков действий.
Мне нужно установить разрешения для каждого действия контроллера для каждой роли. Как это реализовать?
1 ответ
В 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)
объем