这是我在这里的第一篇文章(第一次我找不到答案!)
我有2条记录
Course.spotlight
NewsItem.spotlight
两者均返回5条记录。我将它们与:
@spotlight = Course.spotlight + NewsItem.spotlight
Course.spotlight
被排序release_date
和NewsItem.spotlight
被分类publish_at
无一不是日期字段。
我的问题是,当日期字段为不同名称时,我如何(现在将它们组合在一起)按日期对它们进行排序?
您可以使用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不能将nil与Date进行比较)。另外,如果您有很多记录@spotlight
(例如一百条或更多记录),这在性能上可能会很昂贵。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句