Как предложение с Rails 3 и Sqlite - PullRequest
0 голосов
/ 08 февраля 2012

У меня есть таблица 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) кажутсябольше не поддерживать условия.

1 Ответ

1 голос
/ 08 февраля 2012

Попробуйте использовать:

where_clause = "(name || ' ' || surname) LIKE ?"
...