Я знаю, что я могу искать запросы по телефону where()
на модели следующим образом: Post.where(:title => 'My First Post')
Как выполнить поиск в Rails3?
Но что, если я не знаю, если пользователь хочет, чтобы отфильтровать параметры поиска? Например, у меня есть форма поиска, которая имеет необязательное поле title
. Если заголовок заполнен, форма должна искать заголовок. Однако, если это не так, форма должна просто вернуть все поля.
я пытался делать что-то вдоль линий
search = Post.all
if params[:title].present?
search.where(:title => params[:title])
end
Однако, Rails immidiately возвращает результат поиска, когда я называю POST.All и я не могу дальше добавлять условия/
Как мне делать это?
Спасибо!
Тогда как бы получить ресурс без извлечения полей, чтобы я мог продолжать называть условия на нем? Благодаря! –
Одним из вариантов является установка 'search = Post.unscoped' или' search = Post.scoped', который оставит вас с отношением isl для воспроизведения. В качестве альтернативы, переосмыслите то, как вы условно добавляете области и пытаетесь справиться с этим более изящно в модели. – idlefingers