我在我的应用中使用cancan进行角色管理。我的应用程序中有不同的角色,如超级管理员,管理员,开发者,测试人员。如何在不包含超级管理员和管理员的情况下显示Roles阵列中的角色下拉列表。请看我的代码
class User < ActiveRecord::Base
Roles = [:super_admin, :admin, :developer, :tester]
end
我需要一个包含开发人员和测试人员的选择框,并尝试使用以下代码创建一个数组,但是null项目正在进入下拉列表。
User::Roles.map{|r|
next if %w(super_admin admin).include?(r.to_s)
r.to_s.humanize
}
请帮忙
答案 0 :(得分:1)
roles = User::Roles.dup
roles.delete :super_admin
roles.delete :admin
roles数组将包含除super_admin和admin
之外的所有角色[编辑]
实际上我认为这种方式更好
ADMIN_ROLES = [:admin, :super_admin]
roles = User::Roles.select {|r| !ADMIN_ROLES.include? r}
答案 1 :(得分:1)
快速单行:
(User::Roles - [:super_admin, :admin]).map { |r| r.to_s.humanize }