2016-01-21 3 views
0

Я пытаюсь найти с помощью Ransack, но имеющие проблемы, когда я пытаюсь найти идентификатор и строки вместе, какRansack Поиск Id и струнные вместе

:id_or_title_or_user_username_cont

Он производит ошибку

ActionView::Template::Error (PG::UndefinedFunction: ERROR: operator does not exist: integer ~~* integer

У меня есть также попробовал этот

:id_eq_or_title_or_user_username_cont

он производит следующую ошибку

undefined method `id_eq_or_title_or_user_username_cont' for Ransack::Search

Каков подходящий способ поиска идентификаторов и строк вместе с использованием ransack, отличного от пользовательских предикатов или пользовательских предикатов?

ответ

0
ransacker :id_to_s do 
    Arel.sql("regexp_replace(to_char(\"#{table_name}\".\"id\", '9999999'), ' ', '', 'g')") 
end 
+0

Благодарим за помощь. Я немного запутался здесь, как я могу использовать его в поле поиска? Как и предикат в моем вопросе, можно использовать как <% = f.search_field: id_eq_or_title_or_user_username_cont%> не могли бы вы рассказать о нем дальше. Это будет очень оценено. Заранее спасибо –

+0

Итак, @FakhirShad, если вы в замешательстве, тогда вы не должны принимать это как ответ. –

+0

Отметьте дату моего комментария и дату ответа @zozo –