Pesquisa personalizada com ransacker
Estou tentando adicionar um filtro personalizado ao ActiveAdmin, que é suportado pelo Ransack atualmente. Infelizmente,ransacker
não está documentado e, a partir dos poucos recursos on-line, juntei o seguinte (no modelo de usuário):
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
osearch_in_all_translated
O método retorna uma matriz de usuários que corresponde à cadeia de pesquisa em todos os atributos traduzidos.
Na página de administrador, o seguinte filtro é definido:
filter :full_text_in,
label: 'full text search',
as: :string
O filtro em si funciona, então filtrandotom
listará todos os registros correspondentes. No entanto, o valor na entrada do filtro muda para["tom"]
.
Antes de aplicar o filtro:
Depois de aplicar o filtro:
Alguma idéia de como corrigir isso?