I think you can frame your WHERE clause by splitting the search field
value on a particular database field. e.g.
Assume your query is passed in search parameter. So params[:search] will
access the string passed by the search form. Lets take the example of
Airport and name.
#get the parameter search and split it on blank spaces.
search_str = params[:search]
search_arr = search_str.split(' ')
#Loop through the search_arr and form a where_clause
where_clause = ''
search_arr.each_with_index do |s, i|
where_clause += ' AND ' unless i == 0
where_clause += "name LIKE '%" + s + "%'"
end
#Now use where method of ActiveRecord to fetch the records matching the
criteria.
airports = Airport.where(where_clause)
airport will have all the records matching thew criteria of name from
search form. Hope this will help. :)
Regards
Manoj Monga
manojm@mindfiresolutions.com
http://mindfiresolutions.com
--
Posted via http://www.ruby-forum.com/.
--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
No comments:
Post a Comment