Сортировать записи на основе двух столбцов - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть таблица Task, и я хочу отсортировать записи по двум столбцам с именами owner и task_type. Помните, что я не хочу сортировки на основе разбивки ie между этими двумя столбцами, вместо этого я хочу, чтобы значения этих двух столбцов действовали как единый список значений (для сортировки), к которым будет применяться сортировка ,

Возможно ли это вообще? Я использую ActiveRecord с Postgresql. Например, если у меня есть эти 3 записи:

  1. (идентификатор: 1, владелец: 'ab c', тип задачи: ноль)
  2. (идентификатор: 2, владелец: ноль , task_type: 'aa')
  3. (id: 1, владелец: 'abe', task_type: 'null')

Я хочу выполнить сортировку по этим значениям

('abc','null','null', 'aa', 'abe', 'null')

Который будет сортировать их в этом порядке (мне нужно добиться этого)

  1. (id: 2, владелец: null, тип_задачи: 'aa')
  2. (идентификатор: 1, владелец: 'ab c', тип задачи: ноль)
  3. (идентификатор: 1, владелец: тип abe, тип задачи: 'ноль')

Примечание. Я предполагаю, что owner и task_type являются исключительными полями (т. Е. Если одно имеет значение, другое будет нулевым)
Я проверил это, и он сортирует записи только по t ie -разрыву принцип.

Task.order(owner: :asc, task_type: :asc)

Этот код сортирует их в следующем порядке (я не хочу этого)

  1. (id: 1, владелец: 'ab c', task_type: NULL)
  2. (ID: 1, владелец: 'abe', тип_задачи: 'NULL')
  3. (ID: 2, владелец: NULL, тип_задачи: 'aa')
...