【发布时间】:2011-07-24 03:33:10
【问题描述】:
我有一个使用 Devise 的用户模型,并且我已经设置了角色,因此可以为用户分配一个或多个角色。如果我想检查用户在视图中的角色,下面的代码可以工作......
<% if current_user.roles.include? Role.find_by_name('Administrator') %>
You are an administrator!
<% end %>
但是现在,假设我想检查用户是否具有多个角色之一,看看他们是管理员还是编辑者。我确信以下方法会起作用....
<% if current_user.roles.include? Role.find_by_name('Administrator' || 'Editor') %>
...但它没有,它仅在您是管理员并且忽略检查该列表中第一个角色之后的所有其他角色时才有效。我尝试了其他组合,如 Role.find_by_name(['Administrator','Editor']) 之类的,但没有成功。我将如何格式化它以完成对多个角色的检查?我在 Google 上搜索过,但所有示例都使用一个角色。
【问题讨论】:
标签: ruby-on-rails ruby devise roles