【rails】フォローした人のタイムラインを表示する

※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。

フォローした人の記事をタイムラインに表示する

前回まででフォローの相互関係づくりが完了した

今回は、フォローした人の記事をタイムラインに表示していく


パスを作る

routes.rbを開く

resource :timeline, only: [:show]

timelineは1人ひとつのため、単数形とする


フォローしている人の記事を取得する

timelines_controller.rbを作る

class TimelinesController < ApplicationController
  before_action :authenticate_user!

  def show
  end
end


pluck(:id) 自分がフォローしている人を取得する

  def show
    current_user.followings.pluck(:id)

pluck(:id)

followしているuserを取得し、user1, user2 => [2, 3] が返ってくる


Articleから記事を探す

Articleuser_idが、pluck(:id)で取得したuser_idと合致する物を探す

  def show
    user_ids = current_user.followings.pluck(:id)
    @articles = Article.where(user_id: user_ids)
  end

配列(user_ids)を渡すと、whereは「or」検索する

  1. user_id = “1” の記事と user_id = “2” の記事を探してくる
  2. articlesに配列が入る

#DAY4