Сортировать по алфавиту, используя pg_search с Ruby на Rails - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь использовать pg_search в моем приложении Rails для сортировки списка деталей на основе запроса от пользователя. Однако у меня возникли некоторые проблемы - я не могу получить правильные результаты поиска по возрастанию.

Вот моя модель:

class Pcdb::Part < CatalogsRecord
  include PgSearch
  self.table_name = "parts"
  belongs_to :parts_description
  pg_search_scope :search_for_parts, against: :part_terminology_name,
                   using: { tsearch: { dictionary: "simple", prefix: true } }
end

В моем контроллере я иметь следующий код:

Pcdb::Part.search_for_parts(query), где параметр query вводится пользователем.

Я пытался использовать query.order("parts.part_terminology_name ASC") безрезультатно.

Прямо сейчас, это результат, который я получаю, если параметр query имеет значение "Стеклоочиститель":

Windshield Wiper Motor And Windshield Washer Pump Assembly
Windshield Wiper Motor Relay
Windshield Wiper Switch
Windshield Wiper Motor
Windshield Wiper Arm
Windshield Wiper Blade
Windshield Wiper Linkage
Windshield Wiper Linkage Pivot
Windshield Wiper Blade Refill

На самом деле я пытаюсь добиться такого результата:

Windshield Wiper Arm
Windshield Wiper Blade
Windshield Wiper Blade Refill
Windshield Wiper Linkage
Windshield Wiper Linkage Pivot
Windshield Wiper Motor
Windshield Wiper Motor And Windshield Washer Pump Assembly
Windshield Wiper Motor Relay
Windshield Wiper Switch

Я был бы признателен за указание в правильном направлении!

1 Ответ

1 голос
/ 03 апреля 2020

Попробуйте использовать reorder вместо order. reorder удалит любой другой порядок, определенный в другом месте, в случае, если это отбросит вещи.

...