解决方法
让我稍稍混淆水.我更喜欢通过Role表和连接表UserRole.这样我就可以定义多个角色而无需向db添加另一个列/表.
class User has_many :user_roles has_many :roles,:through => :user_roles def role?(role) role_names.include? role end def role_names @role_names ||= self.roles.map(&:name) end def role=(role) self.roles << Role.find_or_create_by_name(role) end end class UserRole # integer: user_id,integer: role_id belongs_to :user belongs_to :role end class Role # string: name has_many :user_roles has_many :users,:through => :user_roles end