2013-07-11 2 views
5

Vorrei sostituire la pagina dashboard predefinita in ActiveAdmin con una pagina personalizzata.Rimuovere la pagina dashboard da ActiveAdmin

Questo principalmente perché voglio una pagina basata su una risorsa, ad esempio una pagina generata con ActiveAdmin.register e non con ActiveAdmin.register_page.

Ho appena eliminato il file dashboard.rb, sperando che MyCustomAdmin che è una risorsa ActiveAdmin regolare (e funzionante), prenda semplicemente il posto del dashboard.

ma non ha, invece sto ottenendo questo errore:

uninitialized constant Admin::DashboardController 

Così ho cambiato l'inizializzatore ActiveAdmin e impostare:

# config/initializers/active_admin.rb 

config.root_to = 'my_custom_admin#index' 

Ho anche MyCustomAdmin come questo:

# app/admin/my_custom_admin.rb 

ActiveAdmin.register MyCustomAdmin do 
    menu :priority => 1, :label => 'Report' 

    index do 
    column "column 1 title", :column1 
    end 

end 

Tra i miei modelli ho anche:

# app/models/my_custom_admin.rb 

class MyCustomAdmin < ActiveRecord::Base 
end 

Così il problema è quando provo ad accedere a localhost:3000/admin ottengo l'errore:

uninitialized constant Admin::MyCustomAdminController 

Ma se vado a localhost:3000/admin/my_custom_admin funziona bene.

Perché il localhost:3000/admin non funziona?

+0

Partenza 2 ° risposta http: // StackOverflow. it/questions/11087362/setting-root-page-to-activeadmin-default-login-page - cambia al controller/azione che si desidera utilizzare. –

+0

Hai avuto fortuna con questo? – zeantsoi

+0

non è ancora una grande fortuna :-(. L'idea di modificare il config/initializer/active_admin.rb sembra la strada da percorrere, ma se config.root_to = 'my_admin_class # index' ottengo una 'costante non inizializzata'; ho inserito (come suggerito) admin/my_admin_class # indice che ottengo e 'costante costante unizializzata Admin :: Admin' – AgostinoX

risposta

12

L'amministratore attivo genera un controller per te. E il controller è pluralizzato.

Così, alla inizializzazione di amministrazione attiva si dovrebbe usare plurale:

config.root_to = 'my_custom_admins#index' 

E questa è la soluzione.

Si lamenta che

uninitialized constant Admin::MyCustomAdminController 

perché ciò che è stato inizializzato è:

MyCustomAdminsController 

invece.

1

Utilizzando ActiveAdmin 0.5.0 ero in grado di:

1) effettuare una pagina diversa dalla plancia pagina ActiveAdmin predefinita.

2) rimuovere la scheda dashboard dal menu. (Ancora accessibile tramite url)

Aggiunte a config/inizializzatori/active_admin.rb:

ActiveAdmin.setup do |config| 
... 
    # The default start page becomes SomethingElse 
    config.root_to = 'something_else#index' 
end 

module ActiveAdmin 
    module Dashboards 
    class << self 
     # Remove the dashboard tab from the menu 
     alias_method :original_add_to_menu, :add_to_menu 
     def add_to_menu(namespace, menu) 
     # empty 
     end 
    end 
    end 
end 
8

In app/admin/dashboard.rb

menù fisso falso per nascondere il pulsante sul cruscotto.

In config/inizializzatori/active_admin.rb

insieme qualcosa di simile:

config.root_to = 'entità # index'