3

除了註冊頁面/模型之外,如何將您自己的自定義鏈接動態添加到ActiveAdmin全局導航標題?例如,如果我想要一個可以將用戶引導到我的主頁的鏈接。Active Admin導航鏈接

回答

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 ::菜單項,並將其與命名空間example_namespace添加到當前ActiveAdmin菜單,並在current_menu方法的最後返回菜單。注意:current_menu是一種預期的方法ActiveAdmin所以不要更改它的名稱。您可以添加任意數量的項目,並將這些項目中的每一個都轉換爲導航標題上的鏈接。請注意,這適用於ActiveAdmin版本> 0.4.3,因此如果您想爲版本< = 0.4.3執行此操作,您可能需要進行自己的挖掘。

+0

不錯的工作!我很高興你發佈了這個問題和答案! – Ivan 2012-07-19 22:25:37

+0

我很高興它有助於:) – RubyFanatic 2012-07-19 23:46:44

0

您可以在活動管理員初始值設定程序中配置網站標題。例如:

config.site_title_link = "/" 

這會給你一個鏈接到你的根頁面。

2

看起來像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 

如果您已經註冊型號「的頁面」作爲父菜單(即:在您的應用程序/管理/文件夾,用menu :priority => 2, parent: 'Pages'模型),它會保持這些以及自動!

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

在這裏,您可以使用URL參數中的任何db字段值來構建自己的URL。

+1

無需使用''''url: - > {「#{request.base_url} /」}''' – 2017-04-22 07:35:56

+0

感謝Man :) @jakub – 2017-04-24 10:21:54