2

在 Rails 中使用 active_admin gem 时,我想覆盖 html 代码;因为这些 gem 视图中的导航栏和许多元素与我的视图(其他页面)不同。我希望有办法在不手动更改 css 的情况下更改 html 代码!谢谢

4

1 回答 1

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

于 2012-10-24T09:25:48.743 回答