【发布时间】:2014-02-14 17:56:56
【问题描述】:
我对嵌套布局没有什么问题。在我的网站上,我需要为网站制作一个单独的部分,仅供管理员使用。
我的application.html.erb 文件中有这个:
<body>
<%= render 'layouts/header' %>
<div class="container">
<%= yield %>
<%= render 'layouts/footer' %>
</div>
</body>
我想知道现在如何制作另一个这样的模板以插入到 <%= yield %> 中,因为对于管理员部分,我再次需要在主布局中固定站点的部分,例如 header 和 footer。我将有两个菜单,而不是 header 和 footer。我希望<%= yield %> 填充新模板,该模板顶部有菜单,新的<%= yield %> 将填充来自管理控制器的操作。因此,菜单将始终位于顶部。
我做了一个部分菜单views/admins/_menu.html.erb:
<div>
<div>
<div class="container">
<ul>
<li><%= link_to "Action1", '#' %></li>
<li><%= link_to "Action2", '#' %></li>
<li><%= link_to "Action3", '#' %></li>
</ul>
</div>
</div>
</div>
我的新布局是layouts/sublayouts/admin.html.erb:
<%= render 'admins/menu' %>
<%= yield %>
目前的替代方法是在顶部的每个视图中渲染views/admins/_menu.html.erb,但这对我来说不是一个好的解决方案。
常规站点将具有以下结构:
Header/Menu
|
Container
|Content
Footer
管理站点将具有以下结构:
Header/Menu
|
Container
|Content
|Admin Menu
|Admin Content
|
Footer
最好的方法是什么?
【问题讨论】:
标签: html ruby-on-rails ruby-on-rails-4 nestedlayout