{name => 'foo', location => 'bar'} becomes ["name LIKE ? and location LIKE ?", "%foo%", "%bar%"]
New to ruby, so no doubt there is a more concise (or even built in?) way to do this.
def to_like_conditions( conditions ) like_conditions = [] key_count = conditions.size k = "" conditions.each_key do |key| k += "#{key} LIKE ?" if key_count > 1 k += " and " end key_count -= 1 end like_conditions << k conditions.each_value do |value| like_conditions << "%#{value}%" end like_conditions end