3
1

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 5 years have passed since last update.

Rails eachの代わりにrender partial collectionでコレクションのデータを取り出す

Last updated at Posted at 2019-04-02

#はじめに
ネットで調べた情報で分かりづらかった所があったので、まとめてみました。
eachで書くよりもスッキリするのでいいですね。
#eachでの書き方
@dataには何かしらのデータが入っているとします。
@data = User.all的な。

index.html.erb
<% @data.each do |data| %>
※省略
<% end %>

ふつうですね。
次にpartialを使った書き方を。
#renderでpartialのcollectionな書き方

index.html.erb
<%= render partial:'hoge', collection:@data %>

この一行でOKです。スッキリですね。
後はpartialで呼び出す部分テンプレートを用意しておく必要があります。
この場合ならファイル名は _hoge.html.erb になりますね。

#取り出した値はどこへいった??
自分で変数を用意する必要はないらしいです。
部分テンプレートの名前で自動生成されるようです。ありがたいですね。

_hoge.html.erb
<%= hoge.name %>
<%= hoge.age %>

<%= hoge_counter %>

こんな具合ですね。
hoge.でアクセスできます。
また、hoge.counterでcollectionの何番目かを取得できます。
取得できる値は0~のカウントになるので注意が必要ですね。

#おわり
初めてqiitaに投稿してみました。
用語があやふやな部分があり(ActiveRecord_Relationってなんぞ・・・?みたいな・・・)
ふわっとしてますので、指摘のコメントお待ちしてます。

3
1
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
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?