如何为特定Action的Active Admin自定义布局注入头部?
在Active Admin自定义布局中添加默认头部
你可以直接调用Active Admin内置的头部partial来解决这个问题——Active Admin已经把默认的头部组件封装成了可复用的partial,不用自己从头搭建。
步骤1:修改自定义布局文件
打开你的app/views/layouts/custom_active_admin.html.haml,把原来的#header部分替换为渲染Active Admin头部partial的代码,同时别忘了加载Active Admin的默认资源(不然头部样式会错乱):
!!! %html %head = csrf_meta_tags = csp_meta_tag # 先加载Active Admin默认资源,再加载自定义资源,避免样式冲突 = stylesheet_link_tag 'active_admin', media: 'all' = javascript_include_tag 'active_admin' = stylesheet_link_tag 'custom_active_admin', media: 'all' = javascript_include_tag 'custom_active_admin' %body.new.active_admin.logged_in.admin_namespace # 直接渲染Active Admin的默认头部 = render 'active_admin/header' .wrapper.without_sidebar#active_admin_content .main_content_wrapper .alert-message-container = yield
步骤2:(可选)保留自定义head内容
如果你原来的yield :head有自定义内容需要保留,可以把它嵌入到头部区域,比如:
#header = yield :head = render 'active_admin/header'
不过通常Active Admin的header已经包含了页面标题、导航栏、用户菜单这些核心元素,直接渲染它就能还原和其他页面一致的顶部样式。
验证效果
现在重新访问编辑页面,你就能看到和标准Active Admin页面一致的顶部头部,同时你的自定义布局逻辑也能正常运行。
内容的提问来源于stack exchange,提问作者liễu nguyễn
相关产品推荐
相关产品推荐

