rails 技術ブログ

rails 技術ブログ

勉強したことをアウトプットしていきます

パーシャル(partial)とは

applicationビューにはヘッダーやフッターなど全てのページで共通するものが記載されているため、他のビューに比べ1ページ長くなりがち。
また、大人数で開発をしていると、applicationビュー1つにも何人もの人が関わることになります。
「headerタグをいじる人」「shimタグをいじる人」等、何人もの人が同じapplicationビューを同時にいじるとコンピュータがうまく読み込みできない事態になることもあります。

ビューが長くて見づらい、大人数で同じビューをいじっていてコンピュータの処理が追いついていない…
そんなときに使えるのがパーシャル機能です。
どんな機能かというと、ビュー内のコードをいくつものファイルに分割して書き出し、他のテンプレートでも使いまわすことができるようにします。

【使い方】

<%= render 'layouts/header' %>

applicationビューにパーシャルを追加する。
書き方は<%= render '読み込みたいファイル名' %>


<header class="navbar navbar-fixed-top navbar-inverse">
  <div class="container">
    <%= 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", '#' %></li>
      </ul>
    </nav>
  </div>
</header>

「_header.html.erb」ファイルを作成し、その中に表示したい内容を書く
(上記の例はヘッダーのパーシャルなので、ヘッダーの内容を記載)
※パーシャル用のビューファイルを作成する際はファイル名の最初にアンダースコアをつける必要があります。

これでapplicationビューの<%= render 'layouts/header' %>の部分に読み込んだファイルの内容が表示されるようになります。