我有一个Post模型,用户可以在其中添加类似于facebook的帖子。
在新闻提要中,我想按相对于created_at降序显示它们。
问题是
current_user.posts
返回其帖子,而
current_user.networks.each {|network| network.connection.posts}
返回他的联系信息。
我想结合两个结果,以便我可以写类似的东西
all_posts.order(created_at: :desc)
或者有更好的方法吗?
编辑
带有代码
user.rb
has_many :posts
post.rb
belongs_to :user
network.rb
belongs_to :user
belongs_to :connection, class_name: 'User'
其中网络模型是一个联合的和自引用的模型,具有 user_id 和 connection_id 列,并且当两个用户成为朋友时都会更新。
答案 0 :(得分:1)
尝试:
user_post_ids = current_user.post_ids
connection_post_ids = []
current_user.networks.each do |network|
connection_post_ids += network.connection.post_ids
end
post_ids = user_post_ids + connection_post_ids
all_posts = Post.where(id: post_ids).order(created_at: :desc)