我有评论和喜欢(acts_as_votable gem)。我想创建一个活动列表,并按created_at
排序以获得评论,并updated_at
进行投票。
@activity_list = (@user.comments + @user.find_up_voted_items)
@user.find_up_voted_items
- 它不喜欢,但喜欢元素。
我可以使用以下代码找到updated_at
投票时间:
@post.votes_for.up.where(voter_id: @user.id).first.updated_at
如何正确合并和排序?
答案 0 :(得分:0)
以下不一定是高性能的,因为它构建数组而不是ActiveRecord关系。
@ativity_list = (@user.comments + @user.votes.up).sort{|x,y| x.created_at <=> y.created_at}.map{|x| x.is_a?(Vote) ? x.votable : x}
(@user.comments + @user.votes.up)
会返回一系列评论和投票。
#sort{|x,y| x.created_at <=> y.created_at}
在created_at
字段
#map{|x| x.is_a?(Vote) ? x.votable : x}
将数组从评论/投票集更改为评论/投票集