Help us understand the problem. What is going on with this article?

【Rails】パーシャルまとめ

パーシャルを使う目的

viewの一部を別ファイルに切り出し、可読性と再利用性を上げる。

基本の使い方

・パーシャルファイルの名前は_から始まる(_graph.html.erbなど)
・パーシャルが同じディレクトリにある時はrender '{ファイル名}'で呼びだす。(拡張子不要)

<%= render 'graph' %>

・違うディレクトリの時はrender '{ディレクトリ名/ファイル名}'で呼びだす。

<%= render 'shared/error_messages' %>

変数を渡す

<%= render partial: 'graph', locals: { id: 1, name: '棒グラフ'} %>
または
<%= render 'graph', id: 1, name: '棒グラフ' %>
_graph.html.erb
ID:<%= id %>
名前:<%= name %>

collectionオプション(応用)

collectionオプションに複数形のインスタンス変数を渡すと、渡されたインスタンスの要素分そのテンプレートを繰り返し表示します。

<%= render partial: 'book_detail', collection: @books, as: 'book' %>

この場合、
@booksに格納されているインスタンス分だけ_book_detail.html.erbが繰り返し表示されます。
・呼び出されたパーシャル内ではbookという名前のインスタンスを利用することができます。
book_counterという名前のindexの変数が自動で作られます。(0から始まる)

Railsのpartialでcollectionを渡すときにはindexの変数が自動的に作られる

参考

【Rails基礎】ややこしい部分テンプレートの省略形について簡単にまとめてみた
【Rails】部分テンプレートの使い方を徹底解説!

d0ne1s
24歳男。プログラミング / Webデザイン / 個人開発 / MCバトル
https://note.mu/d0ne1s
admin-guild
「Webサービスの運営に必要なあらゆる知見」を共有できる場として作られた、運営者のためのコミュニティです。
https://admin-guild.slack.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした