Ruby或Rails在两个/多个日期字段上排序

时间:2013-01-07 17:25:36

标签: ruby-on-rails ruby

看起来很简单 - 我想结合两个模型查询并按日期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]}

谢谢!

1 个答案:

答案 0 :(得分:4)

你应该使用一个别名来返回你想要比较的每个模型中实现的日期(例如一个名为'date'的方法)。

然后按此date对您的列表进行排序:

(感谢@tokland更好的实施)

my_collection.sort_by(&:date)