我想使用 rolify 测试多个角色。
我试过这个,但没有奏效:
<% if current_user.has_role? [:technician, :admin] %>
谢谢您的帮助!
更新1
我正在尝试测试 :technician 或 :admin - 这可行,但似乎应该有更短的方法:
if current_user.has_role? :technician or current_user.has_role? :admin
我想使用 rolify 测试多个角色。
我试过这个,但没有奏效:
<% if current_user.has_role? [:technician, :admin] %>
谢谢您的帮助!
更新1
我正在尝试测试 :technician 或 :admin - 这可行,但似乎应该有更短的方法:
if current_user.has_role? :technician or current_user.has_role? :admin
我建议您测试类似的东西current_user.has_any_role? :technician, :admin
,它应该返回您期望的布尔值:)
查看Rolify 文档:
多角色检查 检查用户是否具有所有指定的角色
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}