Ruby on rails Rails角色化了如何测试多个角色

Ruby on rails Rails角色化了如何测试多个角色,ruby-on-rails,rolify,Ruby On Rails,Rolify,我想使用rolify测试多个角色 我试过这个,但没用: <% if current_user.has_role? [:technician, :admin] %> 看看下面的例子: 多角色检查 检查用户是否具有所有指定的角色 user = User.find(1) user.add_role :admin # sets a global role user.add_role :moderator, Forum.first # sets a role scoped to

我想使用rolify测试多个角色

我试过这个,但没用:

<% if current_user.has_role? [:technician, :admin] %>
看看下面的例子:

多角色检查 检查用户是否具有所有指定的角色

  user = User.find(1)
  user.add_role :admin # sets a global role
  user.add_role :moderator, Forum.first # sets a role scoped to a resource instance
  user.add_role :visitor, Forum # sets a role scoped to a resource class
  user.has_all_roles? :admin, { :name => :moderator, :resource => Forum.first }, { :name => :visitor, :resource => Forum }
  => true
  user.has_all_roles? :admin, { :name => :moderator, :resource => Forum.last }
  => false
  user.has_all_roles? :god, { :name => :visitor, :resource => Forum }
  => false
  user = User.find(1)
  user.add_role :admin # sets a global role
  user.add_role :moderator, Forum.first # sets a role scoped to a resource
  user.add_role :visitor, Forum # set a role scoped to a resource class
  user.has_any_role? :admin, { :name => :moderator, :resource => Forum.first }, { :name => :visitor, :resource => Forum }
  => true
  user.has_any_role? :admin, { :name => :moderator, :resource => Forum.last }
  => true
  user.has_any_role? :god, { :name => :visitor, :resource => Forum }
  => true
检查用户是否具有任何指定的角色

因此,在您的情况下,您希望使用:

user.has_all_roles? :technician, {:name => :admin}

我建议您测试类似于
current\u user.have\u any\u role?:technician,:admin
,它应该返回您期望的布尔值:)

我正在尝试测试:technician或:admin-这是可行的,但似乎应该有一个较短的方法:如果当前用户有角色?:技师或当前用户是否具有角色?:你试过了吗?一个简单的
语句完全是一个选项:
如果user.has_role?(:foo)| user.has_role?(:bar)
这个答案对我不起作用。以前是3.x现在是5.x。。。这两种方法都不起作用。。每次都是假的。
user.has_all_roles? :technician, {:name => :admin}