在ActiveAdmin的标题菜单中添加自定义项

gch*_*ain 13 ruby-on-rails activeadmin

我想在ActiveAdmin的标题处添加link_to("Edit yout profile",edit_user(current_user))等链接.那可能吗 ?!

kri*_*lim 18

最新版本的ActiveAdmin允许您在active_admin.rb初始化程序中执行此操作:

config.namespace :admin do |admin|
  admin.build_menu do |menu|
    menu.add :label => 'Custom Menu' do |submenu|
      submenu.add :label => 'Custom Link', :url => custom_path
    end
  end
end
Run Code Online (Sandbox Code Playgroud)


ray*_*ban 12

对于最新版本的活动管理员,有两种解决方案,两种都是不幸的.

menu false可以将任何资源设置为menu label: "Google", url: "http://www.google.com".这很不幸,因为如果您使用的是设置它的资源,则会将其突出显示为已选中.

另一个解决方案是覆盖ActiveAdmin::Views::Header上面的内容,但更新了.

module ActiveAdmin
  module Views
    class Header < Component

      def build_global_navigation
        item = ActiveAdmin::MenuItem.new(label: "google", url: "http://www.google.com")
        @menu.add item
        insert_tag view_factory.global_navigation, @menu, :class => 'header-item'
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

这不能完全正确,因为你不能设置parent: "Developer"菜单项之类的东西...无论如何,我可以做一个分叉,这样你就可以在初始化器中添加项目到特定的命名空间......有没有人打开一个问题为了这?我没有看到一个.

更新:我认为这是实现这一目标最简洁的方法(没有为主动管理员做出贡献).

ActiveAdmin.register_page "Queue" do
  menu parent: "Developer", url: '/admin/resque'
end
Run Code Online (Sandbox Code Playgroud)

  • 另一种方式,这是我认为最简单,最干净的方法:`ActiveAdmin.register_page"Queue"{menu parent:"Developer",url:'/ admin/resque'}` (2认同)

Ale*_*eer 6

如果您使用的是具有自定义页面功能的更高版本的ActiveAdmin,则可以执行以下操作:

 ActiveAdmin.register_page "Store Admin" do
   controller do
     define_method(:index) do
       redirect_to "/store/admin"
     end
   end
 end
Run Code Online (Sandbox Code Playgroud)

这会覆盖index通常只呈现页面的PageController 的操作,但您可以将其重定向到您想要去的任何位置,例如edit_user_path


Siw*_*申思维 -2

根据 @phoet 提到的帖子,(/sf/answers/505301891/)尝试以下代码:

module ActiveAdmin
  module Views
    class HeaderRenderer
      def to_html
        title + global_navigation + profile_link + utility_navigation
      end

      def profile_link
        link_to ("Edit yout profile", edit_user (current_user))
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

  • 我认为这在 0.5.0 中不起作用 - 如果我错了,请有人纠正我。 (5认同)