次の少しの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 例外がスローされ、それに応じてページがレンダリングされます。