Вы можете использовать , выбрать , чтобы вернуть только нужных вам друзей
pry(main)> @friends
=> [{"name"=>"Foo bar", "id"=>"1"},
{"name"=>"Bar Foo", "id"=>"2"},
{"name"=>"Mark Zuckerberg", "id"=>"4"}]
pry(main)> params[:q]
=> ["1", "2"]
pry(main)> @friends.select{|friend| params[:q].include? friend['id']}
=> [{"name"=>"Foo bar", "id"=>"1"}, {"name"=>"Bar Foo", "id"=>"2"}]
Однако я бы посоветовал не брать всех друзей, если вы хотите только некоторых из них. Вы можете сделать запрос FQL с условием:
pry(main)> graph.fql_multiquery(query1: "select uid2 from friend where uid1 = me() and uid2 IN (#{params[:q].join(',')})", query2: 'select uid , name from user where uid in (select uid2 from #query1)')
=> {"query1"=>[{"uid2"=>"1"}, {"uid2"=>"2"}],
"query2"=>
[{"uid"=>1, "name"=>"Foo bar"},
{"uid"=>2, "name"=>"Bar Foo"}]}