这是我在这里发表的第一篇文章(第一次我无法找到答案!)
我有2条记录
Course.spotlight
NewsItem.spotlight
两者都返回5条记录。我把它们结合起来:
@spotlight = Course.spotlight + NewsItem.spotlight
Course.spotlight
按release_date
排序
NewsItem.spotlight
按publish_at
排序,两者都是日期字段。
我的问题是,当日期字段是不同的名称时,我如何(现在它们被合并)按日期排序?
答案 0 :(得分:3)
您可以使用Ruby方法sort_by
:
@spotlight = @spotlight.sort_by do |record|
if record.respond_to?(:release_date)
record.release_date
else
record.publish_at
end
end
# sort by date ASC, you can use reverse! to change to order to DESC
# @sportlight.reverse!
此代码表示每个@spotlight
记录将始终返回调用release_date
或publish_at
的日期(Ruby无法将日期与日期进行比较)。此外,如果您在@spotlight
中有大量记录(如一百条或更多记录),这在演出中可能会很昂贵。