Вероятно, самый простой способ сделать это - передать массив в метод where
в ruby.Если вы передадите массив, он будет преобразован в IN
запрос к базе данных:
users = User.where(:facebook_id => friends.map{|f| f['id']})
# generates: SELECT * FROM users where users.facebook_id IN (f1, f2, etc..)
Если вам нужно узнать, какие записи в friends
соответствуют пользователям, вы можете затем вызватьвыберите для друзей:
existing_facebook_ids = users.map(&:facebook_id)
friends.select! {|f| existing_facebook_ids.include?(f['id'])}
Обратите внимание, что вышеприведенное довольно неэффективно, если у вас есть приличное количество записей в любом массиве.Возможно, вам захочется его оптимизировать, или, что еще лучше, не использовать массив друзей и просто перебирать записи пользователя, если они содержат одинаковые данные.