У меня есть скрипт, который имеет вложенный цикл, чтобы проверить, соответствует ли ID в массиве идентификатор динамического набора объектов. Я попытался поместить некоторый код в самую внутреннюю инструкцию if в качестве другой, и он полностью пропускает все и все код, который я помещал между остальным и концом.Ruby skipping else
На боковой ноте я попытался поставить код перед оператором if, и он также пропустил это, но я не беспокоюсь об этом прямо сейчас.
Таким образом, остается вопрос, почему ruby пропускает раздел else кода.
Предположим, что мы имеем действительный массив для треков
WORK_SIZE = 10
countries = %w(US GB CA)
countries.each do | country |
print "Querying #{country} for #{tracks.count} tracks "
counter = 0
found = 0
tracks.dup.each.each.slice(WORK_SIZE) do | subtracks |
ids = subtracks.map { | track | track.id }
hash = JSON.parse(open("http://jsonresults").read)
print '*'
hash['results'].each do | result |
result_id = result['trackID']
print 'a' # Any code here gets skipped (prob 2)
subtracks.each do | track |
print 'b' # Any code here gets skipped (prob 2)
if result_id == track.iTunes_id
found += 1
callfunction()
else
print 'c' # Any code here gets skipped
# Main problem is here
end
end
end
end
print " #{found} tracks found"
print " #{counter} updated\n"
break if tracks.empty?
end
Пример вывода:
Reading 3 tracks
Found 3 tracks
Querying US store for 3 tracks * 0 track(s) found 0 updated
Querying GB store for 3 tracks * 0 track(s) found 0 updated
Querying CA store for 3 tracks * 0 track(s) found 0 updated
Querying AU store for 3 tracks * 0 track(s) found 0 updated
Couldn't match ids for 3 tracks
Вы уверены, что 'hash ['results']' содержит какие-либо предметы? – mipadi
Можете ли вы уменьшить это до образца кода, чтобы мы могли работать? Вряд ли кто-то сможет помочь иначе - в лучшем случае вы догадаетесь, что может произойти неправильно. – matt
'tracks.dup.each.each' является ли он законным? серьезно, реорганизуйте этот код :) – AKovtunov