У меня есть такой контроллер, но класс модели не поддерживает его.
class UserInviteController < ApplicationController
def process_email
authorize! :process_email, :abc
...
method body
...
end
end
В моем классе способностей у меня есть
can :process_email, :abc if user.role == 1
Я следую вики Авторизация не RESTful Controllers от Cancan , и он говорит, что вы можете передать символ как второй аргумент для авторизации обоих! и может.
Это не обязательно должен быть модельный класс или экземпляр.
Обычно первый аргумент - это "действие", которое пытаются выполнить
и
второй аргумент - это «субъект», над которым выполняется действие. Это может быть что угодно.
Я сделал то же самое, но все равно это не работает.
ПРИМЕЧАНИЕ: я также попытался сделать это наоборот
authorize_resource :class => false
как сказано в вики, но это тоже не работает.
Если это поможет, у моего контроллера нет таких действий, как show, new, create или каких-либо других базовых CRUD-действий.
Канкан: 1.4.1