fv17の日記

Webエンジニアの備忘用ブログです。主にWeb界隈の技術に関して書いています。

Rails - パーシャルによる切り出し

やり方

  • 切り出したい部分を <%= render 'layouts/xxxxx' %> に書き換え
  • app/views/layouts以下に _xxxxx.html.erb を追加 (「_」アンダーバー忘れずに)

以下、app/views/layouts/application.html.erbのheaderタグをパーシャルで切り出す具体例

パーシャルで切り出す前

app/views/layouts/application.html.erb

<!DOCTYPE html>
<html>
  <head>
    略
  </head>
  <body>
    <header>
      <div>
        <%= link_to "sample app", root_path, id: "logo" %>
        <nav>
          <ul class="nav navbar-nav navbar-right">
            <li><%= link_to "Home", root_path %></li>
            <li><%= link_to "Help", help_path %></li>
            <li><%= link_to "Log in", signup_path %></li>
          </ul>
        </nav>
      </div>
    </header>
      <%= yield %>
  </body>
</html>

パーシャルで切り出す

  • application.html.erbのheaderタグを <%= render 'layouts/header' %> に書き換え
  • layouts以下に_header.html.erbを追加

app/views/layouts/application.html.erb

<!DOCTYPE html>
<html>
  <head>
    略
  </head>
  <body>
    <%= render 'layouts/header' %>
    <div class="container">
      <%= yield %>
    </div>
  </body>
</html>

app/views/layouts/_header.html.erb

<header>
  <div>
    <%= link_to "sample app", root_path, id: "logo" %>
    <nav>
      <ul class="nav navbar-nav navbar-right">
        <li><%= link_to "Home", root_path %></li>
        <li><%= link_to "Help", help_path %></li>
        <li><%= link_to "Log in", signup_path %></li>
      </ul>
    </nav>
  </div>
</header>