[英]Get all admins CanCanCan
如何按角色對用戶進行定位? 我想將所有具有角色的用戶:admin
加入用戶表。
用戶的字段由CanCanCan gem生成,這是我的user.rb
# == Schema Information
#
# Table name: users
#
...
# roles_mask :integer
...
class User < ApplicationRecord
has_many :glucose_levels
has_many :foods
attr_accessor :current_password
# has_secure_password
ROLES = %i[patient, doctor]
def roles=(roles)
roles = [*roles].map { |r| r.to_sym }
self.roles_mask = (roles & ROLES).map { |r| 2**ROLES.index(r) }.inject(0, :+)
end
def roles
ROLES.reject do |r|
((roles_mask.to_i || 0) & 2**ROLES.index(r)).zero?
end
end
def has_role?(role)
roles.include?(role)
end
...
end
它與cancancan無關,您可以只假設role
是用戶表中字段的名稱,就可以執行User.where(role: 'admin')
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.