使用rolify查找具有特定角色的所有用户

rom*_*man 14 ruby permissions gem roles ruby-on-rails

使用rolify时,如何让所有用户具有特定角色?我尝试过以下但没有帮助:

User.with_role :admin
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

NoMethodError: undefined method `with_role' for #<Class:0x0000000743f9c0>
Run Code Online (Sandbox Code Playgroud)

无法找到任何方法来做到这一点.

Loo*_*hin 26

您可以将with_role方法与User类一起使用,以查找在3.1.0版中具有角色的所有用户.

User.with_role :admin
Run Code Online (Sandbox Code Playgroud)


DVG*_*DVG 9

我会问这个用户的角色

admins = Role.find_by_name('admin').users
Run Code Online (Sandbox Code Playgroud)

with_role方法用于特定用户实例,而不是所有用户的类级别.如果你想实现你必须做这样的事情:

#not 100% on this code, haven't tested it, but you get the idea.
User < ActiveRecord::Base
  def self.with_role(role)
     my_role = Role.find_by_name(role)
     where(:role => my_role)
  end
end
Run Code Online (Sandbox Code Playgroud)