¿Cómo uso cancan para autorizar una variedad de recursos?

¡Tengo un controlador tranquilo que estoy tratando de usar el cancan autorizar! método para aplicar permisos a.

Tengo una acción delete_multiple que comienza así

def delete_multiple
    @invoices = apparent_user.invoices.find(params[:invoice_ids])

Quiero verificar que el usuario tenga permiso para eliminar todas estas facturas antes de continuar. Si uso

authorize! :delete_multiple, @invoices

permiso es rechazado. Mi skill.rb incluye el siguiente

if user.admin?
  can :manage, :all
elsif user.approved_user?
  can [:read, :update, :destroy, :delete_multiple], Invoice, :user_id => user.id
end

¿Se trata de recorrer mi matriz y llamar a autorizar individualmente o hay una forma más inteligente de hacer las cosas? Estoy empezando a sentir que hacer autorizaciones sería más fácil de forma manual que usando cancan para un controlador complicado no reparador (aunque tengo muchos otros controladores relajantes en mi aplicación donde funciona muy bien).

Respuestas a la pregunta(2)

Su respuesta a la pregunta