2011-08-26 7 views
7

Devo aggiungere alcuni collegamenti a determinate pagine dell'applicazione nelle pagine ActiveAdmin. Posso farlo usando le barre laterali, ma dovrò ripetere il codice per ciascuna delle mie risorse. Esiste comunque l'aggiunta di collegamenti personalizzati all'intestazione? O definire una barra laterale che apparirà per tutte le risorse?Come aggiungere un collegamento all'applicazione in ActiveAdmin?

risposta

14

anche io non vorrei trascurare impostazione config.site_title_link in inizializzatori/active_admin.rb.

Sono abbastanza sicuro che ci vuole un simbolo che rappresenta il nome di un itinerario dalla applicazione, ad esempio:

config.site_title_link = :root 

collegherebbe il titolo del sito per root_path dell'applicazione.

+0

Grazie! Stava usando una versione precedente di ActiveAdmin che non supporta un link del titolo configurabile. Aggiornato alla versione più recente e configurato ora. –

+0

E sì, supporta anche i simboli –

+0

Felice di sentire che funziona per te - ovviamente, se hai bisogno di più di un link nella tua intestazione, questo non lo fa. Ma sembra un ottimo inizio! –

2

ero lì che c'è modo build-in per farlo, ma si può ignorare il render-logica nel TabsRenderer (2.2)/TabbedNavigation (3.0):

def render_menu(menu) 
    content_tag :ul, :id => @options[:id] do 
     menu.items.collect do |item| 
     render_item(item) 
     end.join.<<('your_custom_stuff').html_safe 
    end 
    end 
11

Grazie @phoet! Attuato sovrascrivendo il HeaderRenderer invece:

module ActiveAdmin 
    module Views 
     class HeaderRenderer 
     def to_html 
      title + global_navigation + application_link + utility_navigation 
     end 

     def application_link 
      link_to('Back to Application', root_url) 
     end 
     end 
    end 
    end 
+0

Questo deve essere messo ovunque in particolare? ex: 'app/admin/views/header_renderer.rb'? – mbillard

+0

@mbillard: puoi metterlo in uno qualsiasi dei tuoi file nella stessa directory in cui definisci tutte le tue pagine. Questo codice sovrascriverà i metodi nelle classi ActiveAdmin interne. –

+0

Quello è giusto, o un posto migliore per mettere questo sarebbe in un file separato (forse chiamato active_admin_initializer.rb) sotto la directory config/inizializzatori. Tutti i file nella directory "config/initializers" verranno caricati da Rails durante l'avvio. –