4

ページ/モデルを登録する以外に、独自のカスタム リンクを ActiveAdmin グローバル ナビゲーション ヘッダーに動的に追加するにはどうすればよいですか? たとえば、ユーザーを自分のホームページに誘導できるリンクが必要だとします。

4

4 に答える 4

4

ActiveAdmin によって多少簡単になったようです。バージョン 0.6.2 にアップグレードしました。ナビゲーションの任意の場所にカスタム リンクを追加するためにできることは次のとおりです (以下の例では、1 つのカスタム メニュー項目と 1 つのカスタム ドロップダウンが追加されます)。

# 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

「ページ」を親メニューとして既にモデルを登録している場合 (つまり、 app/admin/ フォルダーに を含むモデルmenu :priority => 2, parent: 'Pages')、それらも自動的に保持されます。

于 2013-11-15T14:05:40.777 に答える
2

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で実行する場合は、独自の掘り下げが必要になる場合があることに注意してください。

于 2012-07-19T21:07:42.190 に答える
0

アクティブな管理初期化子でサイトのタイトルを構成できます。例えば:

    config.site_title_link = "/"

これにより、ルートページへのリンクが提供されます。

于 2013-01-31T09:57:47.163 に答える