CanCan - Как настроить немодальный контроллер? - PullRequest
1 голос
/ 07 апреля 2011

У меня есть модель пользователя с логическим полем администратора. Затем у меня есть контроллер администратора, который я хочу включить CanCan.

Как добавить CanCan в контроллер администратора, поскольку там нет модели администратора?

Я пробовал:

class AdminController < ApplicationController
  load_and_authorize_resource :user
  load_and_authorize_resource :admin, :through => :user


class Ability
   include CanCan::Ability
   def initialize
         ....
         can :manage, Admin if current_user.admin == TRUE
         ....

Но это ошибки с «Доступ запрещен на ноль»

Идеи? Спасибо

1 Ответ

0 голосов
/ 29 июля 2011

Вы уверены, что имеете доступ к методу current_user в своем классе способностей?Я не думаю, что у вас будет.

Насколько я помню, при использовании CanCan вы могли бы иметь это в своем классе способностей:

def initialize(user)
    user ||= User.new #guest user.
...
end

И пользователь будет текущим пользователем, яожидать.И я думаю, это должно сработать.

Вы также можете взглянуть на эту страницу: https://github.com/ryanb/cancan/wiki/Non-RESTful-Controllers из вики CanCan.Это не совсем та же проблема, но поскольку она охватывает особый случай (Non-RESTful-Controllers), она может дать вам несколько советов о том, как делать то, что вы хотите сделать.

Cheers

...