ネストされたレイアウトにはほとんど問題がありません。私のサイトでは、管理者専用のサイトの別の部分を作成する必要があります。
私は自分のapplication.html.erb
ファイルにこれを持っています:
<body>
<%= render 'layouts/header' %>
<div class="container">
<%= yield %>
<%= render 'layouts/footer' %>
</div>
</body>
このような別のテンプレートを内部に挿入するにはどうすればよいか疑問に思っていまし<%= yield %>
た. との代わりに2 つのメニューがあります。上部にメニューがあり、管理コントローラーからのアクションで満たされる新しいテンプレートでいっぱいになりたいです。そのため、メニューは常に一番上に表示されます。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
これを達成するための最良の方法は何ですか?