Rails acts_as_follower获取我正在关注的用户和我自己的帖子

时间:2013-10-05 15:52:08

标签: ruby-on-rails controllers posts

我已经设法将我的帖子范围扩展到我正在关注的用户,并使用以下代码:

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

最好的方法是什么。

2 个答案:

答案 0 :(得分: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

要在一个按时间顺序列表中查看列表,请调用sort_by

所以而不是

@status = @statuses.flatten

使用

@status = @statuses.flatten.sort_by{ |status| status.created_at }

答案 1 :(得分:0)

我想出了这个,我需要使用推动而不是扁平化。

@statuses = Status.where("member_id in (?)", following_ids.push(current_member.id)).order("created_at desc").all