Skip to content

Cancan and existing resource action items (buttons)

kiesia edited this page Dec 20, 2012 · 4 revisions

In order to use CanCan in the scope of a custom action, you need get the ability object from the controller. Here is an example where a Activate / Deactivate button is shown to the user. (See also Add custom actions and buttons)

action_item :only => :show do
  user = User.find(params[:id])
  if user.active
    link_to("Deactivate", deactivate_admin_user_path(user), :method => :put) if controller.current_ability.can? :deactivate, User
  else
    link_to("Activate", activate_admin_user_path(user), :method => :put) if controller.current_ability.can? :activate, User
  end
end
Clone this wiki locally