Пользовательский поиск с помощью Ransacker
Я пытаюсь добавить пользовательский фильтр в ActiveAdmin, который в настоящее время работает на Ransack. К несчастью,ransacker
не документирован вообще, и из нескольких онлайн-ресурсов я нашел следующее (в модели User):
ransacker :full_text, formatter: ->(search) {
ids = User.search_in_all_translated(search).map(&:id)
ids = ids.any? ? ids : nil
} do |parent|
parent.table[:id]
end
search_in_all_translated
Метод возвращает массив пользователей, которые соответствуют строке поиска по всем переведенным атрибутам.
На странице администратора определен следующий фильтр:
filter :full_text_in,
label: 'full text search',
as: :string
Сам фильтр работает, поэтому фильтрацияtom
перечислит все соответствующие записи. Однако значение на входе фильтра переключается на["tom"]
.
Перед применением фильтра:
После применения фильтра:
Любые идеи, как это исправить?