自分の投稿とフォローしているユーザの投稿をトップページで表示したかったけど、RailsでどうやってSQLのIN句のような形の条件指定でハマったので、メモ。
指定したかった条件
下記を含んだ投稿の取得
- 自分自身の投稿
- フォローしているユーザーの投稿
対応方法
Model.find(カラム名: 配列)
を使えばOK
実際のコード
def self.followed_users_and_my_topics(current_user) # フォロー済ユーザーのidの取得 followed_ids = current_user.followed_users.map{ |user| user.id } # フォロー済ユーザーidと自分自身のユーザーidの含んだ配列の作成 ids = [current_user.id,followed_ids].flatten # 自分自身とフォロー済ユーザーの投稿を取得 Topic.where(user_id: ids) end