寻找一种利用活动记录从两个模型中获取数据的简单方法,合并数据,然后按created_at对组合输出进行排序。
例如:
假设两个模型,评论&像belongs_to用户一样
返回@ user的评论和喜欢按日期排序的组合列表
我知道我可以在SQL中执行此操作,但我真的很喜欢有效的记录解决方案。
谢谢!
答案 0 :(得分:23)
我认为应该如此简单:
combined_sorted = (User.comments + User.likes).sort{|a,b| a.created_at <=> b.created_at }
答案 1 :(得分:0)
如何(未经测试):
class User < ActiveRecord::Base
scope :activities_by_date, :joins(:comments).joins(:likes).order("created_at desc")
end
然后你可以做@user.activities_by_date
并让db完成所有工作