1

私はacts_as_followerを使用して、ユーザーがアプリケーション内で相互にフォローできるようにしています。フォローしているユーザーの投稿を取得するにはどうすればよいですか? 現在、ソリューションを構築していますが、投稿が作成された順序で表示されず、will_paginate でページ分割できません。提案?以下の私のコードは、ページコントローラーで現在ホームページにフィードをレンダリングする方法を示しています。

@posts = current_user.following_users.includes(:posts).collect{|u| u.posts.paginate(:page => params[:page]).order("created_at DESC")}.flatten
4

1 に答える 1

3

SQLの専門家ではありませんが、これを試してください:

following_ids = current_user.following_users.map(&:id)
Post.where(user_id: following_ids).order("created_at DESC").paginate(page: params[:page])

2 つのクエリ。あなたは確かに1つと結合でそれを行うことができますが、私は単純さが好きです

于 2012-12-05T05:20:05.663 に答える