4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

備忘録 render partialで部分テンプレートを表示しよう

Last updated at Posted at 2020-05-02

共通のビューを部分テンプレートを使って表示

renderメソッドのパーシャルオプションを使って共通部分を表示しましょう。

部分テンプレートとしてビューファイルを作成する時は _hogehoge.html.erbのようにファイル名の前に_(アンダースコア)をつける必要があります。
次のように書くと部分テンプレートをビューに表示できます。

render partial: 'hogehoge'

別ディレクトリに部分テンプレートのデータがある場合は

render partial: 'ディレクトリ名/hogehoge'

で呼び出せます。

localsオプション

localsオプションを使うと部分テンプレート内で使う変数の定義をすることができます。

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

変数は複数指定することも可能です。

render partial: 'ファイル名', locals:{ dog: "ぽち", cat: "たま", pig: "ぶー" }
<p>この子たちの名前は<%= dog %>,<%= cat %>,<%= pig %> です<p>
<!-- この子たちの名前はぽち、たま、ぶーです -->

部分テンプレート内ではインスタンス変数を使わないようにしよう

部分テンプレートに直接インスタンス変数を書いてしますと、
インスタンス変数の定義に依存した書き方になってしまい、再利用性が低下してしまうため。

render partial: 'ファイル名', locals:{ hoge: @hoge }

このようにlocalsオプションでローカル変数に代入してあげましょう。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?