Activeadmin布局不仅仅是一个文件,它是一个组件集合.
如何使用activeadmin覆盖某些组件,如徽标,导航.
解决方法
activeadmin布局组件非常容易定制.您需要做什么:只需定义一个打开ActiveAdmin :: View的模块.
您可以在初始化程序或管理目录中具有custom_activeadmin_components.rb,您可以在其中定义所有activeadmin资源.我更喜欢将它放在activeadmin资源所在的目录中.然后覆盖您想要的任何模块:
这是一个示例:
- module ActiveAdmin
- module Views
- class Header < Component
- def build(namespace,menu)
- super(:id => "header")
- @namespace = namespace
- @menu = menu
- @utility_menu = @namespace.fetch_menu(:utility_navigation)
- build_site_title
- build_global_navigation
- build_utility_navigation
- #you can add any other component here in header section
- end
- def build_site_title
- render "admin/parts/logo"
- end
- def build_global_navigation
- render "admin/parts/main_nav"
- end
- def build_utility_navigation
- render 'admin/parts/language_options'
- insert_tag view_factory.global_navigation,@utility_menu,:id => "utility_nav",:class => 'header-item tabs'
- render 'admin/parts/branch_in_header'
- end
- end
- module Pages
- class Base
- def build_page_content
- build_flash_messages
- div :id => :wizard_progress_bar do
- render 'admin/parts/wizard_progress_bar'
- end
- div :id => "active_admin_content",:class => (skip_sidebar? ? "without_sidebar" : "with_sidebar") do
- build_main_content_wrapper
- build_sidebar unless skip_sidebar?
- end
- end
- end
- end
- end
- end