パーシャル(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' %>
の部分に読み込んだファイルの内容が表示されるようになります。