Skip to content

How to work with cancan

doabit edited this page Oct 6, 2011 · 17 revisions

Active_admin can works well with cancan 1.6.6.

1.app/models/ability.rb

class Ability
  include CanCan::Ability

  def initialize(user)
    user ||= AdminUser.new       
    case user.role      
      when "admin"
        can :manage, :all
      when "editor"
        can :manage,Post   
        cannot [:destroy,:edit], Post   
      end
  end 
end  
  1. application_controller.rb
    def current_ability
      @current_ability ||= Ability.new(current_admin_user)
    end

3.admin/admin_user.rb

# encoding: UTF-8
ActiveAdmin.register AdminUser do    
  menu :if => proc{can? :manage,AdminUser}     
  controller.authorize_resource 
end 
Clone this wiki locally