0

ヘッダー バーに部分的な _header.html.erb を挿入し、フッター バーに部分的な _footer.html.erb を挿入するために、application.html.erb を介してルート ページを管理したいと考えていました。サイドバーの _sidebar.html.erb ...どうすればいいですか? サイドバーは、ホームページ (ルート) に存在してはなりません。application.html.erb ページのレイアウトでこの問題を処理する必要がありますか?

4

3 に答える 3

0

はい、レイアウトを使用してこれを処理する必要があります。デフォルトはapplication.html.erbです。

問題の例を次に示します。

<!DOCTYPE html>
<html>
  <%= render :partial => 'layouts/common_header' %>
  <body>
    <%=  render :partial => 'layouts/top_menu' %>
    <div id='container-fluid'>
      <div id='sidebar'>
        <%= render :partial => 'layouts/sidebar' %>
      </div>
      <div id='content'>
        <%= yield %>
      </div>
    </div>
  </body>
</html>

ヘッダー、ナビゲーションバー、サイドバーにパーシャルを使用するレイアウトがあります。

于 2012-06-05T18:48:57.597 に答える
0

これを行うために、次のように LayoutsHelper でヘルパー メソッドを作成しました。

def sidebar(state)
    @sidebar = state
end

サイドバーを表示させたくないページのビューでそのメソッドを呼び出すことができます<% sidebar false %>

次に、 @sidebar 変数が false に設定されていない限り、 を使用してサイドバーを表示application.html.erbできます。unless

<% unless @sidebar == false %>
    <div class="sidebar">some stuff</div>
<% end %>

それを行うためのより良い方法があると確信していますが、それは私にとってはうまくいきました。

于 2012-06-05T18:57:04.333 に答える
0

メインページにサイドバーが表示されないようにするには、次を発行します。

render :layout => false

コントローラーで、ヘッダーとフッターのパーシャルをindex.html.erbファイルに追加します。

于 2012-06-05T18:57:04.930 に答える