Searchlogic: странное поведение при объединении областей с ИЛИ - PullRequest
1 голос
/ 01 февраля 2011

В настоящее время я внедряю форму поиска в нашей базе данных пользователей.Я хотел бы искать по id, по логину или по электронной почте.

Естественно, я думаю, что лучший подход - это объединить области видимости и упростить форму.Поэтому я добавил текстовое поле для :id_or_login_or_email_like.

Все отлично работает, когда я набираю число в текстовом поле.

Однако, когда я набираю слово и нажимаю поиск, значение iнабрано теряется и заменяется на 0 (ноль), и в результате поиска возвращаются все пользователи, у которых в идентификаторе, имени или логине указано 0.

Есть идеи, как это исправить?Я использую Rails 2.3.2 и SearchLogic 2.4.27.Спасибо!

Ответы [ 2 ]

1 голос
/ 01 февраля 2011

Не берите в голову, я нашел обходной путь: при объединении областей с ИЛИ ставьте область видимости, связанную с целочисленными значениями, в конце.

Поэтому вместо :id_or_login_or_email_like используйте login_or_email_or_id_like.Я отправил эту проблему через github .

1 голос
/ 01 февраля 2011

Я думаю, это потому, что ваша область выполняет сравнение с целым числом при сравнении с id, что приводит к преобразованию вашей строки в 0. Попробуйте использовать .dup, чтобы убедиться, что переданный атрибут в область не изменился.

...