覆盖active_admin gem中的html

时间:2012-10-21 09:52:42

标签: ruby-on-rails-3 activeadmin

我想在Rails中使用active_admin gem时覆盖html代码;因为导航栏和这些宝石视图中的许多元素与我的视图(其他页面)不同。我希望有一种方法来改变HTML代码而无需手动更改CSS!感谢

1 个答案:

答案 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

https://github.com/Fivell/active_admin_sidebar