読者です 読者をやめる 読者になる 読者になる

for,eachで配列の中身を取り出す

Ruby Rails

インスタンス変数に複数の情報をいれると配列化されその出力方法

find等で検索結果をインスタンス変数に格納すると自動的に配列化

ニュース記事を取得して表示したいなぁということでインスタンス変数は@news_entriesにします。

controller内でfindをしそこで細かいことは設定しておきます(order,limit)

for

<% for entry in @news_entries %>
  <%= h(entry.title) %>
<% end %>

entryはfor内で使用するものでここで定義することによって配列の中身をentry内に入れる?

each

<% @news_entries.each do |entry| %>
  <%= h(entry.title) %>
<% end %>

こちらも同じでentryと定義してそちらで参照。前に書くか後ろに書くかが違うくらい

両方とも配列の要素数分だけループを回してくれるので要素のタイトルがすべて表示されます。


entry.titleというのは@news_entriesでいうとループごとに以下の感じで参照します。

@news_entries[0].title -> entry.title
@news_entries[1].title -> entry.title
@news_entries[2].title -> entry.title
@news_entries[3].title -> entry.title

ループを回すごとに配列のはじめのデータから順番にentry.titleに入り出力していきます。