我正在工作的应用程序具有不同的用户角色客户、项目经理和超级用户,并且在登录页面上他们可以搜索文章,并且有一个高级过滤器可以在搜索后过滤掉记录。喜欢:按作者过滤。
我想为客户隐藏高级过滤器,因为我想使用cancancan定义能力。
目前我正在使用模型方法来做这件事。这些方法根据用户类型返回真假。
client?
project_manager?
super_user?
当前代码:
<% unless current_user.client? %>
<%=link_to "Advance Search", "#" %>
<%end%>
我想删除它并使用 cancancan 代替它。
<%if can? :filter, Article %>
<%=link_to "Advance Search", "#" %>
<%end%>
为此,我尝试了
cannot :filter, Article if user.client?
但这限制了所有用户进行过滤。