在activeadmin中对父菜单项进行排序 [英] Sorting parent menu items in activeadmin

查看:58
本文介绍了在activeadmin中对父菜单项进行排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个菜单,其中包含多个:parent项目。
使用:priority可以对下拉菜单中的项目进行排序。

I have a menu, with multiple :parent items. With :priority I can sort the items within a drop down menu.

如何对主菜单的父项进行排序?
我使用的是最新版本的activeadmin

How can I sort my main menu parent items? I'm using the latest version of activeadmin

推荐答案

我帮助自己进行了黑客入侵,发现:

I helped myself with a hack, I found:

如果将以下内容放入config / initializers / active_admin.rb的设置块中。

If you drop the following into the setup block of config/initializers/active_admin.rb.

它使用优先级可显示的第一个子菜单项,以指示父项的排序优先级。

It uses the priority of the first displayable child menu item to indicate the sort priority for the parent item.

  class ::ActiveAdmin::Views::TabbedNavigation
    def priority_for(item)
      child_item = item.children.detect { |child| display_item?(child) }
      child_item ? child_item.priority : item.priority
    end
    private :priority_for

    # Returns an Array of items to display
    def displayable_items(items)
      items.select do |item|
        display_item? item
      end.sort { |i1, i2| priority_for(i1) <=> priority_for(i2) }
    end
  end

对我来说这很好。

这篇关于在activeadmin中对父菜单项进行排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆