【发布时间】:2014-03-17 20:43:23
【问题描述】:
我有一个名为“admin”的菜单条目,其中包含“client”、“users”和“sales”子条目。然后我有 3 个不同的角色(管理员、经理、员工)。角色“admin”可以访问“users”,角色“employee”可以访问“client”和“sales”。 “经理”无法访问菜单中的任何选项。
我可以隐藏其他菜单,但由于它有两个不同的角色,我遇到了一些问题...我正在使用带有 devise 和 cancan 的 rails 3(角色在用户模型中定义)。
例如,这是有效的:
<% if can? :read, Client %>
然后我在菜单条目中评估每个子条目以根据用户角色显示/隐藏,这也有效。按照相同的逻辑,我尝试了隐藏主条目,多个角色:
<% if can? :manage, (Client || User || Sales) %>
但这仅评估第一个(在本例中为“客户端”)。有可能做我想做的事吗?同时“评估”多个角色的最佳方式是什么?
【问题讨论】:
标签: devise ruby-on-rails-3.2 cancan