2015-02-17 3 views
11

Ich habe ein paar Modelle in meiner Ruby on Rails-Anwendung wie "Plan", "Tester", "Modul" usw. Mit activeadmin gem möchte ich eine Seite für jede dieser Entitäten haben und sie jeweils unter a platzieren ein paar verschiedene Menüs. So sieht mein Code wie folgt aus:Wie legt man in ActiveAdmin die Priorität eines übergeordneten Menüs fest?

ActiveAdmin.register Plan do 
    menu parent: 'Planning', priority: 1 

ActiveAdmin.register Tester do 
    menu parent: 'Planning', priority: 2 

ActiveAdmin.register Module do 
    menu parent: 'Bundle', priority: 1 

ActiveAdmin.register User do 
    menu parent: 'Administration', priority: 1 

Ich habe keine Seite für das Top-Menü (‚Planung‘, ‚Bündel‘, ‚Verwaltung‘), aber ich mag, dass sie in einem benutzerdefinierten um zu sehen, und nicht die alphabetische Reihenfolge. Also, meine Frage ist, wie könnte ich die Priorität (Reihenfolge) der übergeordneten Menüs einstellen, ohne eine entsprechende Seite für jeden von ihnen zu haben?

+0

Duplizieren von https://stackoverflow.com/questions/13910416/sorting-parent-menu-items-in-activeadmin?rq=1 –

Antwort

11

Die Elemente, die nicht modellbasiert ihre Priorität von 10 beginnen, können Sie 10+ Priorität für modellbasierte Menüs setzen. Wenn Sie Prioritäten bei nicht modellbasierten Menüs festlegen müssen, können Sie gefälschte Datei unter Admin-Ordner wie admin/administration.rb mit Code erstellen:

ActiveAdmin.register_page "Administration" do 
    menu :label => "Administration", :priority => 15, :url => '#' 
end 

und admin/bundle.rb:

ActiveAdmin.register_page "Bundle" do 
    menu :label => "Bundle", :priority => 16, :url => '#' 
end 

usw.

+0

Sollte ich eine separate Datei für jeden? Der Dateiname sollte Singular oder Plural sein? – moorara

+0

Sie können Datei benennen, was Sie wollen, und ja, Sie können sie in 1 Datei verwenden. – dsounded

+0

Entschuldigung - ich verstehe den ersten Satz in Ihrer Antwort nicht. Was Sie sagen, ist * nicht modellbasiert * Gegenstände beginnen ihre Priorität von 10. Und dann sagst du, man kann eine Priorität für * modellbasierte * Items ab 10 verwenden. Das ist das gleiche ... ??? Kannst du das ein bisschen klären? Vielen Dank. – awenkhh

0

Siehe 'Anpassen der übergeordneten Menüelemente' in documentation.

# config/initializers/active_admin.rb 
config.namespace :admin do |admin| 
    admin.build_menu do |menu| 
    menu.add label: 'Blog', priority: 0 
    end 
end 

# app/admin/post.rb 
ActiveAdmin.register Post do 
    menu parent: 'Blog' 
end