ruby-on-rails – rails:devise,cancan,rolify以获取用户的角色名称

我可以很容易地测试用户是否具有某个角色

if user.has_role? :admin

如何获取用户的角色名称
就像是

users = User.all
user.each{ |user|
  puts user.role or users.role_name  ?
}

用户模型

class User < ActiveRecord::Base
  rolify
  # Include default devise modules. Others available are:
  # :token_authenticatable,:confirmable,# :lockable,:timeoutable and :omniauthable
  devise :database_authenticatable,:registerable,:recoverable,:rememberable,:trackable,:validatable
  # Setup accessible (or protected) attributes for your model
  attr_accessible :email,:password,:password_confirmation,:remember_me,:username,:first_name,:last_name
  # attr_accessible :title,:body
end

榜样

class Role < ActiveRecord::Base
  has_and_belongs_to_many :users,:join_table => :users_roles
  belongs_to :resource,:polymorphic => true
  attr_accessible :name,:id
  scopify
end

解决方法

您可以使用

user.roles.first.name

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...