我怎样才能定制活动管理布局?[英] How can I customize the active admin layout?

本文是小编为大家收集整理的关于我怎样才能定制活动管理布局?的处理方法,想解了我怎样才能定制活动管理布局?的问题怎么解决?我怎样才能定制活动管理布局?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我需要自定义活动管理布局,但我该怎么做?

推荐答案

当在 gem 和 rails 应用程序中定义视图时,将提供在 Rails 应用程序中定义的视图.这是一个逻辑优先级.

因此,如果您需要覆盖所有或部分活动的管理视图,则必须在您的应用中复制这些视图并根据需要进行更改.

其他推荐答案

活动管理布局实际上并未定义为布局文件,而是以编程方式生成的.因此,在布局目录中放置自定义布局实际上不会覆盖默认布局.

但是,您可以对应用程序中的活动管理布局方法进行猴子修补或鸭打孔.

以下内容将向标题添加一个特定于 ie 的样式表:

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

显然是一个丑陋的解决方案.

其他推荐答案

也许 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

本文地址:https://www.itbaoku.cn/post/786407.html