0

次のコードを使用して、フォローしているユーザーだけに投稿の範囲を限定することができました。

following_ids = current_member.following_members.map(&:id)
@statuses = Status.where(member_id: following_ids).order("created_at DESC")

しかし、自分の投稿も含めたいのですが、これを達成するのに苦労しています。したがって、基本的にそのコードとこのコードを組み合わせます。

@statuses = @member.statuses.order('created_at desc').all

これを行う最善の方法は何ですか。

4

2 に答える 2

0

オブジェクトの両方の配列を引き出してフラット化します。

following_ids = current_member.following_members.map(&:id)  
@statuses = Status.where(member_id: following_ids).order("created_at DESC")
@statuses << @member.statuses.order('created_at desc').all
@statuses = @statuses.flatten

リストを 1 つの時系列リストで表示するには、sort_by を呼び出します。

だから代わりに

@status = @statuses.flatten

使用する

@status = @statuses.flatten.sort_by{ |status| status.created_at }
于 2013-10-05T22:08:14.443 に答える