我有一组约会,其start_date
日期时间字段。
我需要对这些约会进行排序,所以我有
我使用相对时间来举例,请记住我必须与Time.now进行比较的代码
[ in_two_days, two_days_ago, tomorrow, yesterday]
我希望返回
[
# First upcoming
tomorrow,
in_two_days,
# Then most recent first
yesterday,
two_days_ago
]
我正在使用Mongoid,但由于数组中的项目很少,我会接受使用数组方法而不是标准的解决方案(尽管具有mongoid标准的解决方案会更好)
答案 0 :(得分:1)
upcoming, past = appointments.sort_by(&:start_date).partition{ |a| a.start_date.future? }
sorted = [*upcoming, *past.reverse]