在我们最新的rails3项目中寻找有关使用cancan的一般建议和提示。
我们正在构建一个内部使用的订购系统,并提供受限制的客户端访问权限。其中包括:
Superadmin Superaccounts Supertechs Clientadmin Clientaccounts Clienttechs
在我们的观点中,我们之前使用了以下组合:
<%if if can can? :管理用户%>
并且
<%if current_user.role_ids.include?(2)%>
我怀疑后者是不好的做法,并希望了解如何最好地实现相同的方法。
我们对如何处理许多角色感到有点困惑。
提供多个用户组访问权限的最佳方式是什么 - 即superadmin和supertechs?
答案 0 :(得分:0)
我认为替换
的最佳选择<% if current_user.role_ids.include?(2) %>
是为模型中的每个角色创建一个方法,例如:
class Company < ActiveRecord::Base
.
.
def super_admin?
self.role_ids.include?(2)
end
.
.
通过这种方式,您将从视图中删除查询逻辑并将其保留在控制器上,您还可以通过以下方式访问角色:
<% if current_user.super_admin? %>
希望有所帮助:)