0
У меня есть модель со следующими четыре областей:MySQL заказа по сгруппированным датам диапазонов
scope :active, -> { where("start_at <= '#{Time.now.utc}' AND end_at > '#{Time.now.utc}'") }
scope :ended, -> { where("end_at < '#{Time.now.utc}'") }
scope :coming_soon, -> { where("start_at > '#{Time.now.utc}' AND start_at < '#{Time.now.utc+6.hours}'") }
Я хочу, чтобы быть в состоянии сделать что-то вроде (псевдокод, просто пытаюсь дать представление):
Model.all.order(active, coming_soon, ended)
Результатом будет все строки из этой таблицы, отсортированные по строкам, удовлетворяющим сначала ограничениям active
, а затем следуя ограничениям coming_soon
и, наконец, всем, связанным с ограничениями ended
.