如何在ActiveAdmin中设置父菜单优先级?

时间:2015-02-17 17:29:31

标签: ruby-on-rails ruby activeadmin

我的Ruby on Rails应用程序中有几个模型,如" Plan"," Tester"," Module"等。使用activeadmin gem,I我希望每个实体都有一个页面,并将每个实体放在几个不同的菜单下。所以我的代码如下所示:

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

我没有顶级菜单的页面(' Planning',' Bundle','管理')但我希望看到它们是自定义顺序而不是字母顺序。所以,我的问题是如何设置父菜单的优先级(顺序)而不为每个菜单设置相应的页面?

2 个答案:

答案 0 :(得分:15)

非基于模型的项目从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

等等

答案 1 :(得分:1)

请参阅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