看起来很简单 - 我想结合两个模型查询并按日期DESC对它们进行排序,但日期字段的命名方式不同。
@news_and_posts = [News.all(:limit => 3, :order => "date_of_news DESC") + Post.all(:limit => 3, :order => "date_of_post DESC")
我试过
@news_and_posts = [News.all(:limit => 3, :order => "date_of_news DESC") + Post.all(:limit => 3, :order => "date_of_post DESC").sort_by {|n, p| [n.date_of_news, p.date_of_post]}
谢谢!
答案 0 :(得分:4)
你应该使用一个别名来返回你想要比较的每个模型中实现的日期(例如一个名为'date'的方法)。
然后按此date
对您的列表进行排序:
(感谢@tokland更好的实施)
my_collection.sort_by(&:date)