Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 主动管理导航链接_Ruby On Rails_Ruby_Ruby On Rails 3_Ruby On Rails 3.1_Rubygems - Fatal编程技术网

Ruby on rails 主动管理导航链接

Ruby on rails 主动管理导航链接,ruby-on-rails,ruby,ruby-on-rails-3,ruby-on-rails-3.1,rubygems,Ruby On Rails,Ruby,Ruby On Rails 3,Ruby On Rails 3.1,Rubygems,除了注册页面/模型外,如何将自己的自定义链接动态添加到ActiveAdmin全局导航标题?例如,如果我想要一个链接,可以将用户指向我的主页。我通过将ActiveAdmin::MenuItem添加到当前的AdminAdmin控制器,成功地实现了这一点。比如说, ActiveAdmin.register User, :name_space => :example_namespace do controller do private def current_menu

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

我通过将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,并将其添加到当前的ActiveAdmin菜单中,使用名称空间example\u namespace,然后在当前的\u menu方法的末尾返回菜单。注意:current_menuActiveAdmin所期望的方法,因此不要更改它的名称。您可以添加任意数量的项目,每个项目都将转换为导航标题上的链接。注意:这适用于ActiveAdmin版本>0.4.3,因此,如果您想为版本进行挖掘,您可能需要自己进行挖掘。您可以在active admin初始值设定项中配置站点标题。例如:

    config.site_title_link = "/"

这将为您提供一个指向根页面的链接。

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

在#config/initializers/active#u 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
如果您已经将“页面”注册为父菜单(即:在您的app/admin/文件夹中,一个具有
菜单:priority=>2、父菜单:“页面”
)的模型,它也会自动保留这些页面

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

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

无需使用
URL:->{“{request.base\u URL}/”}
Thank Man:)@jakub执行AppConfig