2015-01-04 4 views
0

Я хочу привести CanCanCan к моему Rails-приложению, но я не могу прочитать атрибут роли моего пользовательского класса. Мне нужно только решение «одна роль для каждого пользователя», поэтому я добавил роль столбца в мою модель пользователя и успешно перенес его, но когда я попытаюсь прочитать атрибут, его нуль ...Невозможно получить доступ к атрибуту в ActiveRecord

Я создал следующий в моем классе пользователя:

class User < ActiveRecord::Base 

    ## User Model 
    ROLES = %i[admin default] 
    ... 
    attr_accessor :role 
    ... 
end 

Когда я пытаюсь следующим на консоли Rails:

irb(main):001:0> user = User.find(1) 
User Load (1.0ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1 [["id", 1]] 
=> #<User id: 1, username: "ofhouse", email: "[email protected]", ... , role: "admin"> 
irb(main):002:0> user.role 
=> nil 
irb(main):003:0> user.username 
=> "ofhouse" 

я получил ноль для роли пользователя, в то время как другие атрибуты доступны?

ответ

1

Удалите attr_accessor для role, защищая атрибут role, созданный AR автоматически.

+0

Он работает, спасибо! – ofhouse

Смежные вопросы