результаты запроса рельсов по произвольному порядку - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть модель заказа, которая имеет следующие атрибуты:

submitted_date :date
completed_date :date
accepted_date  :date

Я использую эти поля для определения статуса заказа с помощью следующего блока кода:

def status
    if completed_date.present?
      "Fulfilled"
    elsif accepted_date.present? && submitted_date.present? && completed_date.blank?
      "Accepted"
    elsif submitted_date.present? && accepted_date.blank? && completed_date.blank?
      "Submitted"
    else
      "Open"
    end
  end

Я полностью разместил его при создании приложения и не понял, что пользователь захочет увидеть результаты, упорядоченные в следующем порядке:

Open, Отправлено, Принято, Исполненная

Мне, вероятно, следовало бы использовать целочисленное поле для использования в качестве перечисления для определения статуса заказа, но я создал много функциональных возможностей вокруг вышеупомянутой структуры.

Что мне интересно, можно ли упорядочить запрос так, чтобы результаты упорядочивались в указанном выше произвольном порядке?

1 Ответ

0 голосов
/ 01 ноября 2018

Я думаю, что порядок по наиболее полному статусу поможет. Открытый ордер будет иметь нулевую дату, поэтому он должен быть правильно оформлен

Order.order (передано_дата:: деск, завершено_дата:: деск, принято_дата:: деск)

игра с опцией :desc/:asc и .reverse должны сделать свое дело.

Для другой итерации одним из подходов будет иметь конечный автомат, имеющий столбец перечисления состояния, дату для каждого шага. проверка требуемого условия приведет к переходу заказа на следующий шаг

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...