0

我有以下一些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?满足条件时才会出现编辑链接和创建链接。即使条件为假,我也想让它们出现,但会引发 Access Denied 异常并在单击链接时相应地呈现页面。

4

1 回答 1

0

取下罐头块并尝试。如果您的能力文件中未授权用户执行此操作,他将收到错误消息。还要确保 AccessDenied 块位于 ApplicationController 或您的目标控制器继承自的任何其他父控制器中。

于 2013-10-15T06:54:29.453 回答