class ActiveAdmin::Router

def apply(router)


end
ActiveAdmin.routes(self)
Application.routes.draw do |map|

Use this within the routes.rb file:

Creates all the necessary routes for the ActiveAdmin configurations
def apply(router)
  # Define any necessary dashboard routes and root
  router.instance_exec(@application.namespaces.values) do |namespaces|
    namespaces.each do |namespace|
      root_and_dashboard_routes = Proc.new do
        root :to => (namespace.root_to || "dashboard#index")
        if ActiveAdmin::Dashboards.built?
          match '/dashboard' => 'dashboard#index', :as => 'dashboard'
        end
      end
      if namespace.root?
        instance_eval &root_and_dashboard_routes
      else
        namespace(namespace.name) do
          instance_eval &root_and_dashboard_routes
        end
      end
    end
  end
  # Now define the routes for each resource
  router.instance_exec(@application.namespaces) do |namespaces|
    resources = namespaces.values.collect{|n| n.resources.resources }.flatten
    resources.each do |config|
      # Define the block the will get eval'd within the namespace
      route_definition_block = Proc.new do
        case config
        when Resource
          resources config.resource_name.route_key, :only => config.defined_actions do
            # Define any member actions
            member do
              config.member_actions.each do |action|
                # eg: get :comment
                send(action.http_verb, action.name)
              end
            end
            # Define any collection actions
            collection do
              config.collection_actions.each do |action|
                send(action.http_verb, action.name)
              end
              post :batch_action
            end
          end
        when Page
          match "/#{config.underscored_resource_name}" => "#{config.underscored_resource_name}#index"
          config.page_actions.each do |action|
            match "/#{config.underscored_resource_name}/#{action.name}" => "#{config.underscored_resource_name}##{action.name}", :via => action.http_verb
          end
        else
          raise "Unsupported config class: #{config.class}"
        end
      end
      # Add in the parent if it exists
      if config.belongs_to?
        routes_for_belongs_to = route_definition_block.dup
        route_definition_block = Proc.new do
          # If its optional, make the normal resource routes
          instance_eval &routes_for_belongs_to if config.belongs_to_config.optional?
          # Make the nested belongs_to routes
          # :only is set to nothing so that we don't clobber any existing routes on the resource
          resources config.belongs_to_config.target.resource_name.plural, :only => [] do
            instance_eval &routes_for_belongs_to
          end
          # Batch action path is not nested.
          if config.is_a?(Resource)
            resources config.resource_name.route_key, :only => config.defined_actions do
              collection do
                post :batch_action
              end
            end
          end
        end
      end
      # Add on the namespace if required
      unless config.namespace.root?
        routes_in_namespace = route_definition_block.dup
        route_definition_block = Proc.new do
          namespace config.namespace.name do
            instance_eval(&routes_in_namespace)
          end
        end
      end
      instance_eval &route_definition_block
    end
  end
end

def initialize(application)

def initialize(application)
  @application = application
end