Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Ruby on rails 3: Search with multiple params?

I have a search box, and need to search through 2 parameters, "title" or "tags" using the query. I can get one parameter to work, but not two, tried 'OR', '||', ',' nothing works.

Whats the answer ?

Original code: Book.where("title LIKE ?" , "%#{query}%")

What I need: Book.where("title LIKE ?" , "%#{query}%" OR "tags LIKE ?" , "%#{query}%")

like image 808
jakobk Avatar asked Dec 31 '25 14:12

jakobk


2 Answers

Book.where("title LIKE ? OR tags like ?" , "%#{query}%", "%#{query}%")

You should have the "full" SQL query first which contains the placeholders (?) as the first argument for the where query and then the remaining arguments are simply the replacements for the placeholders.

For more information please see the Active Record Querying guide.

like image 178
Ryan Bigg Avatar answered Jan 02 '26 06:01

Ryan Bigg


I suggest you take a look at metawhere which is dedicated to complicated queries (I know this one isn't but it worth noticing).

See Railscast.

like image 43
apneadiving Avatar answered Jan 02 '26 08:01

apneadiving