はじめに
オリジナルアプリ実装中にeachメソッドに悩まされました。
理解が深まったので備忘録として残します。
eachメソッドが理解できていなくて悩んでいるという方が一人でもこの記事を読んで少しでもお役に立てたら幸いです。
1. each メソッド
とは??
データベース上にある複数のレコード(データ)からレコードを1個ずつ(または一個だけ)取得して、繰り返し処理を行ってくれます。
2.記述方法と解説
[配列].each do | [変数] |
繰り返し処理
end
上記がeachメソッドの構造となっています。
[変数]は、eachのdo ~ endの中でしか使えない変数です。ブロック変数と呼ばれます。
<% @birthdays.each do |birthday| %>
<%=link_to '誕生日の詳細情報はこちら', birthday_path(birthday.id), method: :get %>
<%= (birthday.celebrate_person_name) %>
<%= (birthday.date) %>
<% end %>
上記のコードではbirthdaysテーブルに複数登録されているレコードのカラムの値(この場合はcelebrate_person_nameとdate)を一個ずつ(または1個だけ)を取得してきています。
(birthday.celebrate_person_name)の間にあるドットだけで取得してくれています。
3.まとめ
eachメソッドを使用することによりbirthdaysテーブルに複数登録されているレコード郡を繰り返し処理で1個ずつ操作してくれます。(今回の場合は取得という操作)
eachメソッドは初学者が必ずと言っていいほど躓くところなので頑張って使いこなしていきましょう!!
ここまで読んでいただきありがとうございました。