Making sense of all the search options

Hi everyone,

I have an app that manages accounts. There’s a search function that I
don’t like, but it works:

@person_pages, @people = paginate :person, :per_page => 20,
  :conditions => [ "LOWER(username) LIKE ? OR LOWER(first_name)

LIKE ? OR LOWER(last_name) LIKE ? OR LOWER(preferred_name) LIKE ?",
“%” + session[:q] + “%”,
“%” + session[:q] + “%”,
“%” + session[:q] + “%”,
“%” + session[:q] + “%” ], :order => ‘username ASC’

What I need is one search function that does this by default, but also
allows me to search each value independently.

I’d love to use a find_by_first_name() finder, but these are all
“like” searches, which isn’t supported in that fashion. This all ends
up looking pretty ugly in the code.

So, on to some gems and other add-ons.

  • Ferret looks awesome, but overkill for this purpose.
  • SearchGenerator might do it, but all I need is a finder to feed a
    collection, not views and layouts.
  • ActiveSearch looks like the thing, but I’ve heard little about it,
    so I’m not sure it’s still valid.

I’ll play with all of these to get a feel, but if anyone has any
thoughts on the best way to search through a table full of name and
title data, I’d love to hear them.



This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs