😪
Rails 部分テンプレート
部分テンプレートとは
複数のページで共通して利用できるViewファイルのこと。
メリット
- 記述するコードの量が減り見やすくなる
- 同じ記述を何度も書く必要がなくなる
- 修正が必要な場合、修正の対象箇所を減らせる
- 重複記述が減り、ファイルサイズを小さくできる
作成手順
- 共通化できる部分を探し出す
- 部分テンプレートファイルを作成する
- 共通化するコードを切り取る
- 部分テンプレートファイルに共通化部分を記述する
- 部分テンプレート用にコードを書き換える
- 部分テンプレートファイルを呼び出す
共通化に必要なもの
- 部分テンプレートファイル(erbファイル)
- 各ファイル内に部分テンプレートを呼び出す記述
部分テンプレートファイルを作成
ファイル名の先頭にアンダースコア(_)付きのファイルが、部分テンプレートファイルとして認識される!
共通化するコードを切り取り、
部分テンプレートファイルに共通化の対象箇所を記述する。
部分テンプレート用にコードを変更する
部分テンプレートファイル内でインスタンス変数を利用すると、controller側でインスタンス変数の名前や挙動を変更したとき、部分テンプレート側も変更しなければならない
部分テンプレートが呼び出されたときに、Viewから渡される変数が使えるように変更する。
部分テンプレートファイルを呼び出す
renderメソッド
指定したテンプレートを呼び出す時に使うメソッド
render 'ファイル名'
render :アクション名
partialオプション
renderメソッドは色々な形でビューを呼び出すことがでるので、
「呼び出しているのは部分テンプレートだよ」と強調する役割。
つけなくても大丈夫なやつだが、localsオプションを使用した時はつけないとエラーが出る!!
render partial: 'ファイル名'
localsオプション
部分テンプレート内で使う変数の定義をすることができる!!
<%= render partial: 'ファイル名', locals: { '部分テンプレート内で使う変数': '変数に入れる値' } %>
localsオプションでは部分テンプレート内で使用する変数を複数定義することもできる!
<%= render partial: 'hoge', locals: { name: "山田", adress: "東京都渋谷区", age: 20 } %>
今日はここまで!!
Discussion