канкан для нового действия

Я добавил новое действие в свои ресурсы отдыха, как я могу авторизовать его с помощью канкана.

Контроллер страниц:

load_and_authorize_resource


 def index    
 end

 def show
 end

 def new
 end

 def create
 end

 def edit
 end

 def update
 end

 def destroy
 end 

 def mynewaction
 end

Модель способностей:

class Ability
  include CanCan::Ability

  def initialize(user)
      user ||= User.new
      can :create, Page
      can :mynewmethod, Page #does it work?

  end

person rails101    schedule 13.04.2011    source источник
comment
Да, это работает. Также вы можете объединить методы, передавая их массивом, например, can [:create, :mynewmethod], Page   -  person Kleber S.    schedule 14.04.2011
comment
Вы собираетесь принять ответ?   -  person Paul Kaplan    schedule 28.11.2011


Ответы (1)


Да, я считаю, что это работает для вещей, отличных от методов CRUD, хотя это просто из документации, проверьте здесь и фактическая документация от ryanb здесь.

Вам особенно следует обратить внимание на первую ссылку, в которой говорится, что load_and_authorize_resource будет применяться ко всем методам в контроллере, даже к тем, которые отличаются от обычных CRUD.

Я думаю, что самый простой способ - просто проверить его, правильно ли он авторизуется при запуске? Нет ничего лучше, чем попробовать.

person Paul Kaplan    schedule 13.04.2011
comment
Пол прав как с точки зрения того, что он работает так, как описано, так и с точки зрения проверки для подтверждения. - person Patrick Robertson; 14.04.2011