簡體   English   中英

Rails按日期先后排序,然后降序排序

[英]Rails sort date by upcoming first, then descending

我有一個約會集合,其中包含一個start_date DateTime字段。

我需要對這些約會進行排序,以便

  • 即將到來的約會
  • 然后是“過去”約會,最近一次

即假設我有

我以相對時間為例,請記住要與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條件的解決方案會更好)

upcoming, past = appointments.sort_by(&:start_date).partition{ |a| a.start_date.future? }
sorted = [*upcoming, *past.reverse]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM