😪

Rails 部分テンプレート

2023/04/13に公開

部分テンプレートとは

複数のページで共通して利用できるViewファイルのこと。

メリット

  • 記述するコードの量が減り見やすくなる
  • 同じ記述を何度も書く必要がなくなる
  • 修正が必要な場合、修正の対象箇所を減らせる
  • 重複記述が減り、ファイルサイズを小さくできる

作成手順

  1. 共通化できる部分を探し出す
  2. 部分テンプレートファイルを作成する
  3. 共通化するコードを切り取る
  4. 部分テンプレートファイルに共通化部分を記述する
  5. 部分テンプレート用にコードを書き換える
  6. 部分テンプレートファイルを呼び出す

共通化に必要なもの

  • 部分テンプレートファイル(erbファイル)
  • 各ファイル内に部分テンプレートを呼び出す記述

部分テンプレートファイルを作成

ファイル名の先頭にアンダースコア(_)付きのファイルが、部分テンプレートファイルとして認識される!
共通化するコードを切り取り、
部分テンプレートファイルに共通化の対象箇所を記述する。

部分テンプレート用にコードを変更する

部分テンプレートファイル内でインスタンス変数を利用すると、controller側でインスタンス変数の名前や挙動を変更したとき、部分テンプレート側も変更しなければならない

部分テンプレートが呼び出されたときに、Viewから渡される変数が使えるように変更する。

部分テンプレートファイルを呼び出す

renderメソッド

指定したテンプレートを呼び出す時に使うメソッド

render 'ファイル名'
render :アクション名

partialオプション

renderメソッドは色々な形でビューを呼び出すことがでるので、
「呼び出しているのは部分テンプレートだよ」と強調する役割。

つけなくても大丈夫なやつだが、localsオプションを使用した時はつけないとエラーが出る!!

render partial: 'ファイル名'

localsオプション

部分テンプレート内で使う変数の定義をすることができる!!

<%= render partial: 'ファイル名', locals: { '部分テンプレート内で使う変数': '変数に入れる値' } %>

localsオプションでは部分テンプレート内で使用する変数を複数定義することもできる!

<%= render partial: 'hoge', locals: { name: "山田", adress: "東京都渋谷区", age: 20 } %>

https://pikawaka.com/rails/partial_template


今日はここまで!!

Discussion