LoginSignup
1
1

More than 3 years have passed since last update.

【Ruby On Rails】特定のidに紐づいた複数レコードのカラム情報をまとめて取り出し表示させる方法

Posted at

前提

このようなテーブルがあったとします。

hoges テーブル

id text content_id
1 morning 1
2 afternoon 2
3 evening 2
4 night 3
5 midnight 3
6 late night 3

考え方

特定のidに紐づいた複数レコードのカラム情報をまとめて取り出すには、ビューの中で"インスタンス変数.each"という形でeachメソッドを使用すれば、データ情報を複数表示することが可能。

書き方

  1. eachメソッドを使用するには、配列を渡さなければいけない。whereメソッドを用いることで、条件に合致するオブジェクトを配列として取り出す。今回の場合は、Hoge(hogesテーブル)を指定し、whereメソッドを用いて、paramsで運んできたidがcontent_idと一致しているものを@hogesに代入。
hoges_controller.rb
  def show
    @hoges = Hoge.where(content_id: params[:id])
  end

2. 考え方で述べたように、eachメソッドを使えば複数の情報を表示させることができる。例えば、下記のような記述になる。

show.html.erb
  <% @hoges.each do |hoge| %>
    <%= hoge.text %>
  <% end %>

表示イメージ

上記の書き方をした場合、以下のような表示になると思います。

paramsにcontent_id "1" が入っていた場合

スクリーンショット 2020-12-24 22.57.58.png

paramsにcontent_id "2" が入っていた場合

スクリーンショット 2020-12-24 22.59.51.png

paramsにcontent_id "3" が入っていた場合

スクリーンショット 2020-12-24 23.10.06.png

参考記事

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