2011-08-26 29 views
7

ActiveAdmin sayfalarında uygulamanın belirli sayfalarına birkaç bağlantı eklemem gerekiyor. Bunu kenar çubuklarını kullanarak yapabilirim, ancak kaynakların her biri için kodu tekrarlamak zorunda kalacağım. Başlığa özel bağlantılar eklemenin bir yolu var mı? Veya tüm kaynaklar için görünecek bir kenar çubuğu tanımlayın?ActiveAdmin uygulamasına bir bağlantı nasıl geri alınır?

cevap

14

.

Ben örneğin, uygulamadan bir rotanın adını temsil eden bir sembol alır eminim:

config.site_title_link = :root 

uygulamanızın root_path için site başlığını bağlayacak.

+0

Teşekkürler! Yapılandırılabilir bir başlık bağlantısını desteklemeyen eski bir ActiveAdmin sürümü kullanıyordum. En son sürüme yükseltildi ve şimdi yapılandırıldı. –

+0

Ve evet, aynı zamanda sembolleri de destekliyor –

+0

Sizin için çalıştığını duyduğuma sevindim - açıkçası, başlığınızda birden fazla bağlantıya ihtiyacınız varsa, bunu başaramaz. Ama çok iyi bir başlangıç ​​gibi görünüyor! –

2

orada düşünmek bunu yapmak için hiçbir yap-yoldur, ama sen TabsRenderer render-mantık (2.2)/TabbedNavigation (3.0) geçersiz kılabilirsiniz:

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

Teşekkür @phoet! yerine HeaderRenderer geçersiz kılarak bunu Uygulanan: Ben de initializers/active_admin.rb içinde config.site_title_link ayarı gözden kaçırmak istemem

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

Bu özellikle herhangi bir yere konulmalı mı? ex: 'app/admin/views/header_renderer.rb'? – mbillard

+0

@mbillard: Dosyalarınızın herhangi birinde, tüm sayfalarınızı tanımladığınız dizine koyabilirsiniz. Bu kod, iç ActiveAdmin sınıflarındaki yöntemlerin üzerine yazacaktır. –

+0

Bu doğru ya da bu koymak için daha iyi bir yer config/initializers dizini altında ayrı bir dosyada (belki active_admin_initializer.rb olarak adlandırılır) olacaktır. "Config/initializers" dizini altındaki tüm dosyalar, başlatma sırasında Rails tarafından yüklenecektir. –

İlgili konular