カテゴリ: Rails 更新日: 2025/12/11

Railsのパーシャル活用術!render partial・collection・localsでビューを効率化しよう

パーシャル活用術:render partial/collection・localsで再利用性アップ
パーシャル活用術:render partial/collection・localsで再利用性アップ

先生と生徒の会話形式で理解しよう

生徒

「Railsのビューで、同じHTMLを何度も書くのが大変なんですけど…」

先生

「そんなときは、パーシャルという仕組みを使えば、共通部分を使い回すことができますよ。」

生徒

「パーシャルってどうやって使うんですか?renderとかlocalsってよく見かけますが…」

先生

「では、パーシャルの使い方を一緒に学んでいきましょう!」

1. パーシャルとは?

1. パーシャルとは?
1. パーシャルとは?

パーシャル(partial)とは、ビューの一部分を切り出して、再利用可能にする機能です。共通する見た目や繰り返し表示する部分を分けておくことで、コードがすっきりし、メンテナンスも簡単になります。

たとえば「商品情報の表示」や「ユーザー情報のカード」など、複数の場所で同じ見た目が必要なときに役立ちます。

2. パーシャルの作成と命名ルール

2. パーシャルの作成と命名ルール
2. パーシャルの作成と命名ルール

パーシャルは、通常のERBファイルと同じように作りますが、ファイル名の先頭に「_(アンダースコア)」をつけるという決まりがあります。

例えば、商品カードのパーシャルを作るなら:


app/views/products/_product.html.erb

このように作っておけば、renderで呼び出すことができます。

3. 基本のrenderの使い方

3. 基本のrenderの使い方
3. 基本のrenderの使い方

作ったパーシャルを呼び出すには、renderメソッドを使います。以下のように書くだけで表示されます:


<%= render partial: "product", locals: { product: @product } %>

partial:にはファイル名(先頭の「_」は省略)、locals:では、渡したい変数を指定します。

4. localsで値を渡す方法

4. localsで値を渡す方法
4. localsで値を渡す方法

localsを使うことで、パーシャルに値を渡して中で使うことができます。


<!-- _product.html.erb -->
<div class="card">
  <h3><%= product.name %></h3>
  <p><%= product.description %></p>
</div>

このように、呼び出し元でlocalsproduct: @productを渡せば、パーシャル内でproductという変数が使えるようになります。

5. 繰り返し表示に便利なcollectionオプション

5. 繰り返し表示に便利なcollectionオプション
5. 繰り返し表示に便利なcollectionオプション

複数の商品を一覧で表示したいとき、毎回render partial: ...を繰り返すのは大変です。そんなときはcollectionオプションを使えば、配列の要素ごとにパーシャルを自動で呼び出してくれます。


<%= render partial: "product", collection: @products %>

このように書くだけで、@productsの中の各要素を使って、_product.html.erbが繰り返し呼び出されます。

このとき、パーシャル内で使う変数名は「product」になります(ファイル名の単数形が自動で使われます)。

6. asオプションで変数名を自由に変更

6. asオプションで変数名を自由に変更
6. asオプションで変数名を自由に変更

collectionを使うとき、変数名を変えたいときはasオプションが使えます。


<%= render partial: "product", collection: @products, as: :item %>

このようにすれば、_product.html.erb内ではitemという変数でデータにアクセスできます。

7. current_userなどの変数も渡せる

7. current_userなどの変数も渡せる
7. current_userなどの変数も渡せる

パーシャルに渡せるのはモデルのデータだけではありません。現在ログイン中のユーザー情報(current_user)や、フラグ、条件分岐のための値なども渡すことができます。


<%= render partial: "product", locals: { product: product, current_user: current_user } %>

これにより、current_user.admin?のような条件で表示を切り替えることも可能になります。

8. render "ディレクトリ/ファイル名" だけでもOK

8. render
8. render "ディレクトリ/ファイル名" だけでもOK

render partial:locals:は省略することもできます。よく使う簡略記法は次のようになります:


<%= render "products/product", product: @product %>

ファイル名の指定と変数の渡し方がシンプルになって、読みやすさがアップします。短いコードで書けるので、日常的に使われる書き方です。

9. 部品化で保守性アップ!パーシャルのメリット

9. 部品化で保守性アップ!パーシャルのメリット
9. 部品化で保守性アップ!パーシャルのメリット

パーシャルを使うと、Railsのビューがとても見やすくなり、修正もしやすくなります。

  • 繰り返し部分を1ファイルにまとめて再利用できる
  • レイアウトの統一感が保たれる
  • エラー箇所を素早く特定できる

初心者のうちから「この部分は何度も出てくるな」と感じたら、積極的にパーシャルに切り出していく癖をつけると、自然と設計力が身につきます。

関連記事:
カテゴリの一覧へ
新着記事
New1
データベース
SQLの処理が遅くなる原因とは?初心者向けにデータベースパフォーマンス最適化を完全解説
New2
Ruby
RubyのネストHash操作を徹底解説!digとtransformメソッドで複雑なデータも楽々
New3
Rails
Railsインデックス設計の極意!爆速サイトを作るためのスキーマ設計ガイド
New4
データベース
SQLのCOMMITとROLLBACKとは?トランザクション操作を初心者向けに完全解説
人気記事
No.1
Java&Spring記事人気No1
Rails
Railsで日本語と時刻の設定をしよう!初心者でも安心のlocale/zone初期設定チートシート
No.2
Java&Spring記事人気No2
Ruby
PATHと環境変数の正しい設定!Windows・Mac・Linux別チェックリスト付き
No.3
Java&Spring記事人気No3
Ruby
Rubyのハッシュを徹底比較!シンボルキーと文字列キーの違いと使い分け
No.4
Java&Spring記事人気No4
Rails
Railsマイグレーションの型選びを完全ガイド!初心者が迷わないカラム設計
No.5
Java&Spring記事人気No5
Ruby
WindowsでRubyをインストールする方法!RubyInstallerとMSYS2を使った完全ガイド
No.6
Java&Spring記事人気No6
Rails
RailsモデルとActive Record基礎|ID戦略を完全理解!AUTO INCREMENT・UUID・ULIDの比較と導入手順
No.7
Java&Spring記事人気No7
データベース
ACID特性とは?データベーストランザクションの信頼性を初心者向けに徹底解説
No.8
Java&Spring記事人気No8
データベース
データベース正規化とは?初心者でもわかるデータ重複を防ぐSQL設計の基本