2012-04-04 5 views
0

Я пишу Rails функцию, которая (должна)пейджинга через Koala :: GraphCollection

  1. Импорт все из пользователей/Me/музыка "
  2. Посмотрите каждую страницу более подробно в группах 50 (FB batch API)

Импорт У меня все работает нормально. И пакет работает со мной, ограничивая цикл до первых 50, но я не уверен, как перезапустить цикл со смещением. Это мой текущий цикл:

Koala::Facebook::BatchOperation.instance_variable_set(:@identifier, 0) 
results = @graph.batch do |batch_api| 
    @music.each do |artist| 
    if(i == 50) 
    break 
    end 
    batch_api.get_object(artist["id"]) 
    i=i+1 
    end 
end 

Видимо @music[0..50] do |artist| не является допустимым синтаксисом, так не повезло там.

ответ

3

Для Googlers, это как я решить мою проблему:

artist_ids = music.each do |artist| 
    artist["id"] 
end 
Koala::Facebook::BatchOperation.instance_variable_set(:@identifier, 0) 
artist_ids.in_groups_of(50) do |artists| 
    i=0 
    results = graph.batch do |batch_api| 
    for artist in artists do 
     # ((Your code)) 
     i=i+1 
    end 
    end 
    results.each do |artist| 
     # ((Your code)) 
    end 
end 
+1

Несмотря на то, что еще лучше, если ваш список художников/страниц/объектов исходит из коллекции, вы можете указать поля, которые вы хотите в начальный а не получать список идентификаторов, а затем работать один за другим. – RubberDucky