[英]rails (devise/ cancan /rolify): more efficient way to get users with certain role
[英]rails: devise ,cancan, rolify to get role name by user
我可以很容易地测试用户是否具有某个角色
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.