无法访问ActiveRecord中的属性

问题描述:

我想将CanCanCan带入我的Rails应用程序,但我无法阅读我的用户级别的角色属性。 我只需要一个“每个用户一个角色”的解决方案,所以我在我的用户模型中添加了一个“角色”并成功迁移了它,但是当我尝试读取该属性时,它的零... 0 0在我的用户类以下内容:无法访问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" 

我得到了用户的角​​色为零,而其他属性都可以访问?

删除attr_accessorrole,它屏蔽了AR自动生成的role属性。

+0

它的工作原理,谢谢! – ofhouse 2015-01-04 15:20:52