Ноль в параметре инициализации CanCan в моделиility.rb - PullRequest
0 голосов
/ 03 декабря 2010

Я следую руководству от Райана Б., но я неправильно понял, пытаясь проверить роль пользователя.

Почему я получил параметр инициализации nil при его проверке. Есть ли какая-либо связь между параметром initialize с объектом Person, в учебнике Райана используется параметр 'user' в методе initialize и пользовательской модели. Я забыл что-то основное здесь? Это мои коды, спасибо!

class Ability 
  include CanCan::Ability

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

1 Ответ

0 голосов
/ 03 декабря 2010

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

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