我想在Rails中使用active_admin gem时覆盖html代码;因为导航栏和这些宝石视图中的许多元素与我的视图(其他页面)不同。我希望有一种方法来改变HTML代码而无需手动更改CSS!感谢
答案 0 :(得分:3)
这不是很容易,activeadmin使用DSL来构建html(称为“Arbre”) 你必须对每个页面类进行修补,也可能会阻止自定义css。
例如,要将侧边栏移到左侧,请使用下一个修补程序创建初始化程序。
class ActiveAdmin::Views::Pages::Base < Arbre::HTML::Document
def build_page_content
build_flash_messages
div :id => "active_admin_content", :class => (skip_sidebar? ? "without_sidebar" : "with_sidebar") do
build_sidebar unless skip_sidebar?
build_main_content_wrapper
end
end
end
默认方法是
def build_page_content
build_flash_messages
div :id => "active_admin_content", :class => (skip_sidebar? ? "without_sidebar" : "with_sidebar") do
build_main_content_wrapper
build_sidebar unless skip_sidebar?
end
end
可以在此处找到用于渲染的完整类列表,因此需要修补其中一些类。 https://github.com/gregbell/active_admin/tree/master/lib/active_admin/views
准备好做大部分工作。
UPD。 用于更改activeadmin侧边栏位置的Gem