部分テンプレートとは
部分テンプレートを作成することで
ビューのレイアウトの構造が同じである部分を共通化することで
コーディングをシンプルにすることができる。
ビューファイルごとに記述するコードの量を減らすことができる。
部分テンプレートの作成
部分テンプレートの作成は共通して使用するコードを
記述したビューファイルを作成する。
作成する際は、名前の頭に_(アンダーバー)をつける
決まりがある。
部分テンプレートの使い方
部分テンプレートの作成ができたら、部分テンプレートを使用する
箇所でメソッドを使い、呼び出してあげる必要があります。
renderメソッド
部分テンプレートを使用するにはrenderメソッドを使って呼び出します。
以下記述例(部分テンプレート名 _sample.html.erbの場合)
<%= render partial: "sample", locals: { tweet: "hello!" } %>
・partial
partialには部分テンプレートのファイル名を指定します。ただし_(アンダーバー)は記述しないので注意。
部分テンプレートファイルが呼び出すビューファイルと別のフォルダにある場合は、
partial: "samples/hello"のようにファイルの場所を指定します。
・locals
localsは部分テンプレートにある変数に対して指定の値を渡すために使います。
上記の例だと部分テンプレートに記述されているtweetという変数には"Hello!"を代入するように
指定していることになります。
おわりに
共通のビューというとappliction.html.erbがあるが
これはビューファイル全体に共通するコードを記述する場所であり
ビューファイルが読み込まれる際は、appliction.html.erb
が呼ばれ、その上で処理ごとのビューファイルが読み込まれる。
表示画面のイメージ
・部分テンプレートあり
appliction.html.erb + ビューファイル(部分テンプレート)
・部分テンプレートなし
appliction.html.erb + ビューファイル