メイン レイアウト (アプリケーション) と 2 つの「サブ」レイアウト (ダッシュボードと管理者) があります。私のダッシュボードと管理コントローラーにはそれぞれ、テンプレートをレンダリングする before_filter があります。必要なテンプレートです (ダッシュボードまたは管理のいずれか)。
私のダッシュボードと管理レイアウトでは、次のようなことをしています:
<% content_for :top_menu do %>
<%= render partial: "layouts/menu/top", locals: {section: 'admin'} %>
<%= render partial: "layouts/menu/sub", locals: {section: 'admin'} %>
<% end %>
したがって、これには、必要な正しいオプションを示すローカル セクションを含むトップ パーシャルが含まれています。
アプリケーションのレイアウトには、次のものがあります。
SOME HTML HERE
<%= yield :top_menu %>
SOME HTML HERE
<%= yield %>
SOME HTML HERE
問題は、ビューのコンテンツが表示されないことです。アプリケーション レイアウトの「利回り」にある場所にコンテンツが表示されることを期待しています。
私は読んだ:http://guides.rubyonrails.org/layouts_and_rendering.html#using-nested-layouts - しかし、それに従うとメニューが2回表示され、まだコンテンツが表示されません。
ここで何かを理解できていないと思います。助けていただければ幸いです。
つまり、トップメニューが必要で、どのメニューを使用するかを指定したいのはコントローラーです。これには、私が見逃しているより良い解決策があると確信しています。