Como uso o cancan para autorizar uma variedade de recursos?

Tenho um controlador não reparador que estou tentando usar o cancan autorize! método para aplicar permissões a.

Tenho uma ação delete_multiple que começa assim

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

Quero verificar se o usuário tem permissão para excluir todas essas faturas antes de continuar. Se eu usar

authorize! :delete_multiple, @invoices

permission é recusado. Minha habilidade.rb inclui o seguinte

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

É uma questão de percorrer minha matriz e chamar autorizar individualmente ou existe uma maneira mais inteligente de fazer as coisas? Estou começando a achar que fazer autorizações seria mais fácil manualmente do que usar cancan para um controlador não reparado complicado (embora eu tenha muitos outros controladores reparadores no meu aplicativo, onde ele funciona muito bem).

questionAnswers(2)

yourAnswerToTheQuestion