Пользовательский Ransacker, чтобы игнорировать тире в базе данных - PullRequest
0 голосов
/ 01 мая 2018

Я пытаюсь настроить Ransack, чтобы разрешить поиск в текстовом поле и, возможно, с помощью Ransack игнорировать символ dash.

Пример:

Если я введу это в поле поиска:

123456

Запрос Ransack не найдет эту запись в БД:

123-456

Прямо сейчас, если я не наберу тире, запись не будет найдена. Я понимаю, почему он пытается сопоставить запись в БД и, очевидно, не находит ее, потому что для ее поиска требуется тире.

Можно ли настроить Ransack так, чтобы при поиске он все равно находил запись без черты в параметрах?

1 Ответ

0 голосов
/ 01 мая 2018

Похоже, что создание собственного Ransacker делает свое дело здесь.

ransacker :number do
  Arel.sql("translate(number, '-', '')")
end

Это удалит дефисы из представления данных в базе данных при поиске с помощью Ransack.

...