diff --git a/app/models/person.rb b/app/models/person.rb index 76bcd2aa3..445b1bba9 100644 --- a/app/models/person.rb +++ b/app/models/person.rb @@ -34,8 +34,23 @@ class Person /^(https?):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*(\.[a-z]{2,5})?(:[0-9]{1,5})?(\/.*)?$/ix def self.search(query) - query = Regexp.escape( query.to_s.strip ) - Person.all('profile.first_name' => /^#{query}/i) | Person.all('profile.last_name' => /^#{query}/i) + qTokens = query.to_s.strip.split(" ") + fullQueryText = Regexp.escape( query.to_s.strip ) + + p = Person.all('profile.first_name' => /^#{fullQueryText}/i) \ + | Person.all('profile.last_name' => /^#{fullQueryText}/i) + + qTokens.each { + |token| + + q = Regexp.escape( token.to_s.strip ) + p = Person.all('profile.first_name' => /^#{q}/i) \ + | Person.all('profile.last_name' => /^#{q}/i) \ + | p + + } + + return p end def real_name