アクティブな管理レイアウトをカスタマイズする必要がありますが、どうすればよいですか?
20394 次
5 に答える
31
アクティブな管理レイアウトは、実際にはレイアウト ファイルとして定義されていませんが、プログラムによって生成されます。したがって、レイアウト ディレクトリにカスタム レイアウトを配置しても、実際にはデフォルト レイアウトが上書きされるわけではありません。
ただし、アプリケーション内のアクティブな管理レイアウト メソッドにモンキー パッチまたはダック パンチを適用することはできます。
以下は、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
明らかに醜い解決策です。
于 2012-02-28T00:36:09.373 に答える
11
ビューが gem と Rails アプリで定義されている場合、Rails アプリで定義されたビューが提供されます。論理優先です。
そのため、アクティブな管理ビューのすべてまたは一部をオーバーライドする必要がある場合は、これらをアプリにコピーして、必要に応じて変更する必要があります。
于 2011-09-17T11:50:26.750 に答える