How to Do a Rails Search in Multiple Columns

[Updated for Rails 3]

Rails 3

  class Speaker < ActiveRecord::Base
    def self.with_name_or_keyword(term)
      Speaker.where("speakers.name like ? or speakers.bio like ? or speakers.tagline like ?", "%#{term}", "%#{term}", "%#{term}")
    end
  end

Will work with somethign like

Speaker.with_name_or_keyword("Bill")

Rails 2.3

  
  named_scope :with_name_or_keyword, lambda { |*args| {:conditions => ["speakers.name like ? OR speakers.bio like ? OR speakers.tagline like ?", ("%#{args.first}%" || ""), ("%#{args.first}%" || ""), ("%#{args.first}%" || "")]} }

will work with something like this:

Speaker.fuzzy_name_find("Bill")