我對嵌套佈局沒有什麼問題。在我的網站上,我只需要爲管理員製作一個單獨的網站部分。應用程序佈局中的嵌套佈局
我有這個在我的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
什麼是完成這一任務的最好方法是什麼?
看起來不錯,但是如何才能完成該菜單的顯示,只有當我點擊打開視圖的管理菜單的按鈕時才顯示出來?目前它會立即顯示在頭版以及所有內容。 – user3304086
您能澄清一點:您是否希望管理員導航到管理頁面(因此只有一個顯示管理員/菜單部分的視圖),還是您有整個管理部分是一系列頁面(所以你有多個視圖加載這個部分)? – alalani
好:)在標題裏我有菜單鏈接(管理面板,Link2等)。用戶點擊Link2後,鏈接的內容顯示在「yield」位置。但是,當用戶點擊管理面板後,帶有鏈接的新菜單(AdminMenuLink1等)顯示在yield中。現在我有兩個菜單!管理員點擊AdminMenuLink1後,內容會顯示在下方,但第二個菜單仍然存在。如果用戶僅在菜單2中的鏈接(AdminMenuLink1等)上導航,菜單應始終存在。如果管理員從第一個菜單中點擊Link2,他會退出管理菜單並在沒有第二個菜單的情況下再次查看正常內容。 – user3304086