У меня есть не успокаивающий контроллер, который я пытаюсь использовать для авторизации cancan! метод для применения разрешений.
У меня есть действие delete_multiple, которое начинается так
def delete_multiple
@invoices = apparent_user.invoices.find(params[:invoice_ids])
Я хочу проверить, есть ли у пользователя разрешение на удаление всех этих счетов, прежде чем продолжить. Если я использую
authorize! :delete_multiple, @invoices
, в разрешении будет отказано. В моем файле capacity.rb есть следующее
if user.admin?
can :manage, :all
elsif user.approved_user?
can [:read, :update, :destroy, :delete_multiple], Invoice, :user_id => user.id
end
Это вопрос цикла по моему массиву и индивидуального вызова авторизации, или есть более разумный способ сделать что-то? Я начинаю чувствовать, что выполнять авторизацию было бы проще вручную, чем с помощью cancan для сложного не успокаивающего контроллера (хотя в моем приложении есть множество других спокойных контроллеров, которые отлично работают).