2010-12-03 4 views
0

Я следую учебнику Ryan B, но у меня что-то не так, когда пытаюсь проверить роль пользователя.Nil in CanCan параметр инициализации в model.rb модели

Почему я получил параметр инициализации nil, когда я его проверяю. Существует ли какая-либо связь между параметром initialize с объектом Person, в руководстве Ryan используется параметр «user» для метода initialize и User Model. Я что-то забываю здесь? Это мои коды, спасибо!

class Ability 
    include CanCan::Ability 

    def initialize(person) 
    raise person.inspect 
    can :read, :all 
    end 
end 

ответ

0

Скорее всего, пользователь не зарегистрирован при работе с этим кодом. Вам нужно создать своего рода гостевого пользователя, чтобы проверять права доступа к незарегистрированным пользователям

def initialize(person) 
    user ||= User.new 
    if user.role? :somerole 
     can :read, :all 
    else 
    #whatever guest can do 
    end 
    end 
+0

Что, или вы также можете проверить на person.nil? назначить права гостя. – 2010-12-03 13:47:13