Rails 按即将到来的日期排序,然后降序排列
Rails sort date by upcoming first, then descending
我有一个约会集合,其中有一个 start_date
日期时间字段。
我需要对这些约会进行排序,所以我有
- 即将到来的约会优先
- 然后是 "past" 个约会,最近的排在第一位
假设我有
我使用相对时间来举例说明,请记住我必须与 Time.now
进行比较的代码
[ in_two_days, two_days_ago, tomorrow, yesterday]
我想要return
的排序
[
# First upcoming
tomorrow,
in_two_days,
# Then most recent first
yesterday,
two_days_ago
]
我正在使用 Mongoid,但由于数组中的项目很少,我会接受使用数组方法而不是标准的解决方案(尽管使用 mongoid 标准的解决方案会更好)
upcoming, past = appointments.sort_by(&:start_date).partition{ |a| a.start_date.future? }
sorted = [*upcoming, *past.reverse]
我有一个约会集合,其中有一个 start_date
日期时间字段。
我需要对这些约会进行排序,所以我有
- 即将到来的约会优先
- 然后是 "past" 个约会,最近的排在第一位
假设我有
我使用相对时间来举例说明,请记住我必须与 Time.now
进行比较的代码[ in_two_days, two_days_ago, tomorrow, yesterday]
我想要return
的排序[
# First upcoming
tomorrow,
in_two_days,
# Then most recent first
yesterday,
two_days_ago
]
我正在使用 Mongoid,但由于数组中的项目很少,我会接受使用数组方法而不是标准的解决方案(尽管使用 mongoid 标准的解决方案会更好)
upcoming, past = appointments.sort_by(&:start_date).partition{ |a| a.start_date.future? }
sorted = [*upcoming, *past.reverse]