无法访问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_accessor
为role
,它屏蔽了AR自动生成的role
属性。
它的工作原理,谢谢! – ofhouse 2015-01-04 15:20:52