0

我在我的应用程序中使用 cancan 进行角色管理。我在我的应用中有不同的角色,例如超级管理员、管理员、开发人员、测试人员。如何在不包括超级管理员和管理员的情况下显示角色数组中的角色下拉列表。请看我的代码

class User < ActiveRecord::Base
   Roles = [:super_admin, :admin, :developer, :tester]
end

我需要一个包含开发人员和测试人员的选择框,并尝试使用以下代码创建一个数组,但下拉列表中出现了空项。

User::Roles.map{|r| 
  next if %w(super_admin admin).include?(r.to_s)
  r.to_s.humanize
}

请帮忙

4

2 回答 2

1
roles = User::Roles.dup
roles.delete :super_admin
roles.delete :admin

角色数组将具有除 super_admin 和 admin 之外的所有角色

[编辑]

其实我觉得这种方式更好

ADMIN_ROLES = [:admin, :super_admin]

roles = User::Roles.select {|r| !ADMIN_ROLES.include? r}
于 2013-10-04T12:00:07.127 回答
1

快速单线:

(User::Roles - [:super_admin, :admin]).map { |r| r.to_s.humanize }
于 2013-10-04T12:18:52.263 回答