начинающему Im в рельсах и есть некоторые проблемы, чтобы улучшить свой поисковый запрос:Поисковый запрос для (имя или личного имени) и (имя forname) и (имя forname)
В контроллере я называю:
def index
if params[:search]
@persons = Person.search(params[:search]).order("created_at DESC")
else
@persons = Person.order("created_at DESC")
end
end
А в модели у меня есть:
def self.search(query)
where("name like ?", "%#{query}%")
end
Так на самом деле я только фильтр имя! Теперь я пытался улучшить его, но оно не работает, как я любил его, моя цель состоит в том, что пользователь может ввести, например:
John
Smith
Smith John
John Smith
и она всегда должна возвращать John Smith
. Итак, как я могу написать такой длинный sql-запрос? Заранее спасибо!
Я думаю, что это лучший код, но почему-то я получаю сообщение об ошибке: 'SQLite3 :: SQLException: рядом с« ILIKE »: синтаксическая ошибка: SELECT« пациенты ». * FROM« пациенты »WHERE (vorname ILIKE '%' emmanuel '%' OR nachname ILIKE '%' emmanuel '%') ' –
Извините,' vorname' является forename на немецком языке, а 'nachname' - это имя –
Я обновил свой ответ @JohnSmith. Также я рекомендую вам использовать английский в своих приложениях, его проще поддерживать для другие люди, и это является частью Конвенции об именах Rails;) – MrYoshiji