2

これはおそらく簡単ですが、解決策を見つけることができませんでした。

ActiveAdmin で、ページ上部のメニュー、特に現在ログインしているユーザーのこのリンクの動作をカスタマイズしたいと思います。

すべての検索で、右上隅のリンクを変更する方法を見つけることができませんでした。

リンクが指すテキストを変更し、可能であればメニューのこの領域にリンクを追加したいと思います。

これを行う簡単な方法はありますか?

4

2 に答える 2

6

config/initializers/active_admin.rbを変更できます。

ActiveAdmin 0.6.0の場合、次の行を追加します。

ActiveAdmin.setup do |config|
  # Customize Up Right menu
  config.namespace :admin do |admin|
    admin.build_menu :utility_navigation do |menu|
      menu.add  :label  => 'click me', # text of your link
        :url            => proc{ my_awesome_path }, # route of your link
        :html_options   => {:style => 'float:left;'}, # attributes added in the DOM of your link
        :if             => proc{ 1 < 2 } # condition to display the link

      menu.add  :label  => proc{ display_name current_active_admin_user }, # email of the current admin user logged
        :url            => proc { my_other_awesome_path },
        :html_options   => {:style => 'float:left;'},
        :id             => 'current_user',
        :if             => proc{ current_active_admin_user? }

      admin.add_logout_button_to_menu menu, 100, :style => 'float:left;' # logout link
    end
  end
end

ActiveAdmin 0.4.2以前の場合、同じファイルの末尾に次のコードを追加する必要があります。

ActiveAdmin.setup do |config|
  # ...
end

module ActiveAdmin
  module Views
    class HeaderRenderer
      alias_method :default_to_html, :to_html
      def to_html
        default_to_html.sub(current_admin_user.email, "<a style='text-decoration: underline;' href='#{my_awesome_path}'>#{current_admin_user.email}</b>").html_safe
      end
    end
  end
end

お役に立てれば :)

于 2013-09-19T23:35:16.357 に答える
1

初期化ファイルに次のように入力するだけです。

ActiveAdmin.setup do |config|
 config.namespace :admin do |admin|
   admin.build_menu :utility_navigation do |menu|
     menu.add label: "ActiveAdmin.info", url: "http://www.activeadmin.info",
                                      html_options: { target: :blank }
     admin.add_current_user_to_menu  menu
     admin.add_logout_button_to_menu menu
   end
 end
end
于 2014-10-01T19:48:27.597 に答える