Таблица пользователей:
имя фамилия
Боб Пресли
Джейми Кокс
Люси Буш
Римский кокс
Найти пользователей
q = Query.new("Bob Presley, Cox, Lucy")
q.find_users => {0=>{:name=>"Bob", :lastname=>"Presley"}, 1=>{:lastname=>"Cox"}, 2=>{:name=>"Lucy"}}
Вопрос:
У меня есть хэш с несколькими именами и фамилиями. Мне нужно построить запрос Activerecord для получения всех пользователей из этого хэша.
Если у меня есть имя и фамилия, я должен найти пользователя с точно таким же именем и фамилией.
Если у меня есть только фамилия или имя, я должен найти всех пользователей с этим именем или фамилией. Поэтому, когда я ищу: фамилия => Кокс, он должен вернуть двух пользователей [Роман Кокс, Джейми Кокс]
я могу сделать
object = []
hash = q.find_users
hash.each do |data|
#Pseudocode
# object << User.where(:name => if data[:lastname] exist, :lastname => if data[:name] exist)
end
Но я думаю, что это крайне неэффективно. Как мне это сделать?
Окружающая среда
рельсы: 3.0.3
рубин: 1.9.2-голова
gem: meta_search https://github.com/ernie/meta_search