Как установить приоритет родительского меню в ActiveAdmin?
У меня есть несколько моделей в моем приложении Ruby on Rails, таком как "План", "Тестер", "Модуль" и т.д. Используя жёсткий диск activeadmin, я хотел бы иметь страницу для каждого из этих объектов, несколько разных меню. Поэтому мой код выглядит следующим образом:
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
У меня нет страницы для верхних меню ( "Планирование", "Пакет", "Администрирование" ), но я хочу видеть их в пользовательском порядке, а не в алфавитном порядке. Итак, мой вопрос: как установить приоритет (порядок) родительского меню без соответствующей страницы для каждого из них?
Ответы
Ответ 1
Элементы, которые не основаны на модели, начинают свой приоритет с 10, поэтому вы можете поставить 10+ приоритет для меню на основе модели.
Если вам нужно установить приоритеты среди немодельных меню, вы можете создать поддельный файл под папкой администратора, например admin/Administration.rb, с кодом:
ActiveAdmin.register_page "Administration" do
menu :label => "Administration", :priority => 15, :url => '#'
end
и admin/bundle.rb:
ActiveAdmin.register_page "Bundle" do
menu :label => "Bundle", :priority => 16, :url => '#'
end
so on
Ответ 2
См. "Настройка элементов родительского меню" в документации.
# 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