2011-09-17 28 views

Trả lời

10

Khi chế độ xem được xác định bằng đá quý VÀ trong ứng dụng đường ray, ứng dụng được xác định trong ứng dụng Rails được phân phối. Đó là một ưu tiên logic.

Vì vậy, nếu bạn cần ghi đè tất cả hoặc một số chế độ xem quản trị hoạt động, bạn sẽ phải sao chép các ứng dụng này trong ứng dụng của mình và thay đổi chúng theo ý muốn.

+1

Tôi có thể tìm chúng ở đâu? Tôi đã tìm kiếm git cho AGES và không thể tìm thấy nó! – Mexxer

+0

Tương tự tại đây @Mexxer; Tôi đã dành nhiều thời gian cho một cách để ghi đè chính xác điều này. – jackyalcine

+0

Xem tại đây: https://github.com/gregbell/active_admin/tree/master/app/views – apneadiving

26

Bố cục quản trị hoạt động không thực sự được xác định là tệp bố cục nhưng được tạo theo chương trình. Do đó, việc đặt bố cục tùy chỉnh trong thư mục bố cục sẽ không thực sự ghi đè bố cục mặc định.

Bạn có thể, tuy nhiên, vá khỉ hoặc bấm lỗ các phương thức bố cục quản trị hoạt động bên trong ứng dụng của bạn.

Sau đây sẽ thêm một stylesheet ie-cụ thể đối với tiêu đề:

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 

Rõ ràng là một giải pháp xấu xí.

+2

Bạn sẽ đặt địa điểm này ở đâu? – jackyalcine

+0

@jalcine tôi thêm video này vào một initializer –

+0

Vì vậy, sẽ bổ sung thêm: module 'ActiveAdmin mô-đun Lần mô-đun Trang bố trí: Ứng dụng cuối cuối cuối ' Và tôi muốn được tốt? – jackyalcine

1

Có lẽ ActiveAdmin hiện cung cấp một cách hay hơn để thực hiện việc này ngay bây giờ? Tôi không biết. Tuy nhiên ở đây sẽ là một ví dụ cho một miếng vá sạch hơn một chút cho tình huống đó, trong ví dụ của tôi để thêm đá quý webpacker javascript_pack_tag vào khu vực quản trị của tôi.

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

Đây là câu trả lời hay nhất IMO. Tuy nhiên, chúng tôi có thể sử dụng một cách tiết kiệm hơn để thêm vào mô-đun: https://gist.github.com/francois-ferrandis/1dc749262e7376e62074f908ee70356b –

Các vấn đề liên quan