0
0

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

いいねした投稿の表示

Last updated at Posted at 2021-09-24

いいねした投稿を表示させる方法

ポートフォリオにブックマーク機能を追加するにあたり、
どのユーザーがどの投稿をブックマークしたかを表示させるので悩んだので投稿したいと思います。
かなり初学者向けの内容です。

ロジック

以前にいいねした投稿を表示させていたので、それを使い復習したいと思います。

ユーザーの詳細ページで自分がいいねした投稿を表示させる

users_controller.rb
def show
  @user = User.find(params[:id])
  @like_posts = Post.where(id: @user.favorites.pluck(:post_id))
end

まずuser_idを取得

.rb
@user = User.find(params[:id])

pluckを使う

pluckとは・・指定したカラムのレコードの配列を取得できるメソッド

ドキュメント参照
https://railsdoc.com/page/model_pluck

@userで取得したidのユーザーがいいねした投稿のPost_idをpluckで取得

.rb
@user.favorites.pluck(:post_id)

whereで検索する

pluckで取得したpost_idをPostモデルの中から検索する。
findやfind_byだと1レコードしか返ってこないので注意。

.rb
@like_posts = Post.where(id: @user.favorites.pluck(:post_id))

後は格納した@like_postsを使い、each文等で表示させることができると思います。
最後までご覧いただきありがとうございました!!

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?