我有以下haml代码
%tr
%td= account['name']
%td= account['id']
%td= account['description']
-if account['edit']
%td= link_to shorten(account['data']), data_path(account['id'])
-if can? :modify
%td= link_to 'Edit', edit_data_path(id: account['id'])
-else
%td None
-else
%td None
-if can? :modify
%td= link_to 'Create', new_data_path(id: account['id'])
-else
%td None
我的应用程序控制器中有以下位
rescue_from CanCan::AccessDenied do |exception|
render status: 403, template: "/errors/403_forbidden.html.haml"
我面临的问题是,只有满足if can?
条件时才会显示编辑链接和创建链接。我想让它们出现,即使条件为false但是抛出Access Denied异常并在点击链接时相应地呈现页面。
答案 0 :(得分:0)
删除can块并试用。如果用户未在您的能力文件中授权执行此操作,则他将收到错误消息。还要确保AccessDenied块位于ApplicationController或目标控制器继承的任何其他父控制器中。