class ActiveAdmin::CanCanAdapter

def authorized?(action, subject = nil)

def authorized?(action, subject = nil)
  cancan_ability.can?(action, subject)
end

def cancan_ability

def cancan_ability
  @cancan_ability ||= initialize_cancan_ability
end

def initialize_cancan_ability

to enable reloading in development.
The setting allows the class to be stored as a string
def initialize_cancan_ability
  ability_class_name = resource.namespace.cancan_ability_class
  if ability_class_name.is_a?(String)
    ability_class = ActiveSupport::Dependencies.constantize(ability_class_name)
  else
    ability_class = ability_class_name
  end
  ability_class.new(user)
end

def scope_collection(collection, action = ActiveAdmin::Auth::READ)

def scope_collection(collection, action = ActiveAdmin::Auth::READ)
  collection.accessible_by(cancan_ability, action)
end