2011-09-17 10 views

答えて

10

ビューは宝石にとRailsアプリで定義されている場合は、Railsのアプリケーションで定義された1を提供しています。それは論理優先です。

ですから、全部または一部のアクティブな管理ビューを上書きする必要がある場合、あなたが望むようにアプリでこれらをコピーして、それらを変更する必要があります。

+1

?私はgitでAGESを探していて、それを見つけることはできません! – Mexxer

+0

同名の@Mexxer;私はこれを適切に上書きするためのかなりの時間を費やしてきました。 – jackyalcine

+0

ここをクリックしてください:https://github.com/gregbell/active_admin/tree/master/app/views – apneadiving

26

アクティブな管理者のレイアウトは、実際にレイアウトファイルとして定義されていませんが、プログラムが生成されます。レイアウトディレクトリにカスタムレイアウトを配置することは、実際にはデフォルトのレイアウトを上書きすることはありません。

ただし、サル、パッチやアプリケーション内のアクティブな管理者のレイアウト方法をダック・パンチすることができます。以下は、ヘッダに、すなわち、特定のスタイルシートを追加する

:明らか

module ActiveAdmin 
    module Views 
    module Pages 
     class Base < Arbre::HTML::Document 

     alias_method :original_build_active_admin_head, :build_active_admin_head unless method_defined?(:original_build_active_admin_head) 

     def build_active_admin_head 
      within @head do 
      meta :"http-equiv" => "Content-type", :content => "text/html; charset=utf-8" 
      insert_tag Arbre::HTML::Title, [title, active_admin_application.site_title].join(" | ") 
      active_admin_application.stylesheets.each do |path| 
       link :href => stylesheet_path(path), :media => "screen", :rel => "stylesheet", :type => "text/css" 
      end 
      active_admin_application.javascripts.each do |path| 
       script :src => javascript_path(path), :type => "text/javascript" 
      end 
      text_node csrf_meta_tag 
      text_node "<!--[if lt IE 7]> 
      <link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"admin_ie7.css\ /> 
      <![endif] -->".html_safe 
      end 
     end 

     end 
    end 
    end 
end 

醜い溶液。

+2

どこに配置しますか? – jackyalcine

+0

@jalcine私は、これはそう加えることでしょうイニシャライザ –

+0

に追加します。 'モジュールActiveAdmin モジュールビュー モジュールページ レイアウト:アプリケーション 終了 エンド エンド ' そして、私はいいだろうか? – jackyalcine

1

多分、ActiveAdminはこれまでにもっと良い方法を提供していますか?知りません。 しかし、私の例では、webpacker gems javascript_pack_tagを自分の管理領域に追加するために、この状況のた​​めの少しきれいなパッチの例があります。私もそれらを見つけることができます

module MyApp 
    module ActiveAdmin 
    module Views 
     module Pages 
     module BaseExtension 
      def build_active_admin_head 
      super 
      within @head do 
       text_node(javascript_pack_tag('application')) 
      end 
      end 
     end 
     end 
    end 
    end 
end 

class ActiveAdmin::Views::Pages::Base < Arbre::HTML::Document 
    prepend MyApp::ActiveAdmin::Views::Pages::BaseExtension 
end 
+0

これはIMOに最適な回答です。しかし、あまり冗長な方法でモジュールの前に追加することができます:https://gist.github.com/francois-ferrandis/1dc749262e7376e62074f908ee70356b –

関連する問題