2011-10-09 1 views
5

Eventuali duplicati:
Add page to active adminActiveAdmin come aggiungere un controller personalizzato senza modello

Io attualmente alla ricerca di una soluzione per l'aggiunta di un controller senza un modello per l'amministratore di generare da ActiveAdmin (e Rails 3.1). Ovviamente mi piacerebbe aggiungere un nuovo menu nella barra di navigazione.

L'utilizzo di ActiveAdmin.register MyControllerWithoutModel do non funziona.

Modifica: Questa domanda è una copia di Add page to active admin ma non è stata trovata alcuna risposta.

+0

Una soluzione è quella di creare un modello fittizio, ma dopo farlo, ho questo errore: "metodo non definito' quoted_table_name' per MyControllerWithoutModel: Classe" –

+0

fare ** non ** inviare di nuovo una domanda solo perché una risposta non è stata trovata. Se hai dettagli sulla domanda, puoi suggerire una modifica. Inoltre, se guadagni ancora più reputazione, puoi offrire una taglia sulla domanda che ti garantirà più visualizzazioni e possibilmente più risposte. La duplicazione di una domanda intenzionalmente può portare a segnalazioni sui tuoi post che potrebbero comportare ulteriori azioni di moderatore. – casperOne

risposta

0

Stavo cercando questo per modificare la configurazione dell'applicazione, ma mi sembra che senza modello sia impossibile. Ho appena creato il modello vuoto con la tabella in db e registro la risorsa come al solito.

Per personalizzare risorsa:

filtri disattivare

config.clear_sidebar_sections! 

menu personalizzato percorso

ActiveAdmin.application.namespaces[:admin].resources['Configuration'].namespace.menu.items.each{|i| i.instance_eval('@cached_url[:admin_configurations_path] = "/admin"')} 
2

Questo è ciò che ha funzionato per me, basta sostituire il nome giusto per ViewLogger nelle codeblocks . In questo modo non dovrai creare una tabella fittizia nel tuo database.

Crea un file /app/models/viewlogger.rb con questo contenuto, per i modelli di tableless più avanzati che potresti voler controllare http://keithmcdonnell.net/activerecord_tableless_model_gem.html o google la tua visione insieme.

class Viewlogger < ActiveRecord::Base 

    def self.columns 
    @columns ||= [] 
    end 

    # ... 

end 

aggiungere una voce al /config/initializers/inflections.rb

ActiveSupport::Inflector.inflections do |inflect| 
    inflect.uncountable %w(viewlogger) 
end 

istituito un percorso per la vostra viewlogger, in config/routes.rb:

match '/admin/viewlogger' => 'admin/viewlogger#index', :as => :admin_viewlogger 

ora puoi formulare il blocco di registro activeadmin come segue (assicurati di creare una vista parziale nel posto giusto)

ActiveAdmin.register Viewlogger do 
    config.comments = false 
    before_filter do @skip_sidebar = true end 
    # menu false 
    config.clear_action_items! # this will prevent the 'new button' showing up 


    controller do 
    def index 
     # some hopefully useful code 
     render 'admin/viewlogger/index', :layout => 'active_admin' 
    end 
    end 

fine