活动管理导航链接

时间:2012-07-19 18:44:49

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1 rubygems

除了注册页面/模型之外,如何将自己的自定义链接动态添加到ActiveAdmin全局导航标题?例如,如果我想要一个可以将用户引导到我的主页的链接。

4 个答案:

答案 0 :(得分:4)

似乎ActiveAdmin让它变得更容易一些。我升级到版本0.6.2,您可以在导航中的任何位置添加自定义链接(下面的示例将添加一个自定义菜单项和一个自定义下拉列表):

在#config / initializers / active_admin.rb

ActiveAdmin.setup do |config|
  config.namespace :admin do |admin|
    admin.build_menu do |menu|
      menu.add :label => "My Custom Link", :url => "/", :priority => 0

      menu.add :label => "Pages" do |pages|
        pages.add :label => "Homepage", :url => "/admin/homepage"
        pages.add :label => "About Us", :url => "/admin/about-us"
        pages.add :label => "Facebook", :url => "http://www.facebook.com", :html_options => { :target => "_blank" }
      end
    end
  end
end

如果你已经注册了带有“Pages”作为父菜单的模型(例如:在你的app / admin /文件夹中,一个带有menu :priority => 2, parent: 'Pages'的模型),它会自动保存这些模型!

答案 1 :(得分:1)

我通过将ActiveAdmin :: MenuItem添加到当前的AdminAdmin控制器来实现此目的。例如,

ActiveAdmin.register User, :name_space => :example_namespace do
  controller do
    private
    def current_menu
      item = ActiveAdmin::MenuItem.new :label => "Link Name", :url => 'http://google.com'
      ActiveAdmin.application.namespaces[:example_namespace].menu.add(item)
      ActiveAdmin.application.namespaces[:example_namespace].menu
    end
  end
end

我基本上创建了一个新的 ActiveAdmin :: MenuItem ,并将其添加到当前名为 example_namespace 的ActiveAdmin菜单中,并返回末尾的菜单current_menu 方法。注意: current_menu ActiveAdmin 所需的方法,因此请勿更改其名称。您可以添加任意数量的项目,并将每个项目转换为导航标题上的链接。请注意,这适用于ActiveAdmin版本> 0.4.3如果你想在版本< = 0.4.3上进行挖掘,你可能需要自己进行挖掘。

答案 2 :(得分:1)

ActiveAdmin.register AdminPage do
  menu :url => proc{ "#{AppConfig.url}/checkins/#{current_admin_user.try(:id)}" }
end

在这里,您可以使用URL参数中的任何db字段值来构建自己的URL。

答案 3 :(得分:0)

您可以在有效的管理初始值设定项中配置网站标题。例如:

    config.site_title_link = "/"

这会为您提供指向您的根页的链接。