Tob*_*ede 28
活动管理布局实际上并未定义为布局文件,而是以编程方式生成.因此,在布局目录中放置自定义布局实际上不会覆盖默认布局.
但是,您可以在应用程序中对活动的管理布局方法进行修补或破解.
以下内容将向标题添加特定于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
Run Code Online (Sandbox Code Playgroud)
显然是一个丑陋的解决方案.
apn*_*ing 11
当在gem和rails应用程序中定义视图时,会提供Rails应用程序中定义的视图.这是一个逻辑优先事项.
因此,如果您需要覆盖所有或部分有效的管理员视图,则必须在应用中复制这些视图并根据需要进行更改.
也许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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
17633 次 |
最近记录: |