У меня есть таблица users
с name
и surname
и форма поиска только с полем full_name
. Как мне заставить его работать?
Я пробовал с этим простым кодом:
where_clause = "(name + ' ' + surname) LIKE ?"
# page is a will_paginate method
@users = User.where([where_clause, "%#{params[:full_name]}%"]).page params[:page]
Приведенный выше код выдает:
SELECT "users".* FROM "users" WHERE ((name + ' ' + surname) LIKE '%test%') LIMIT 30 OFFSET 0
... который дает никаких результатов ! Почему?
Я думаю, что проблема заключается в конкатенации, но я не вижу альтернативы.Фактически я не могу изменить предложение select (то есть "*, (name + '' + фамилия) AS full_name"), потому что метод page не работает с поиском активной записи, и методы will_paginate (например, page или paginate) кажутсябольше не поддерживать условия.