Selvamani
Selvamani

Reputation: 7684

rails condition query for search form

How to do search query in rails. My params is

"search"=>{"id"=>"1", "name"=>"selva", "item_id"=>""}

and what I have tried

User.where("id = ? AND name = ? AND item_id = ?", params["search"]["id"],params["search"]["name"],params["search"]["item_id"]) 

Here problem is when params comes empty, then it trough error. So can you suggest me what is best way to search and how people are searching form.

Upvotes: 1

Views: 127

Answers (1)

Paté
Paté

Reputation: 1964

Something Like that

users = User

if params['search']
  search_data = params['search']
  users = users.where(:id => search_data['id']) if search_data['id']
  users = users.where(:name => search_data['name']) if search_data['name']
  users = users.where(:item_id => search_data['item_id']) if search_data['item_id']
end

users = users.all

Upvotes: 3

Related Questions