array = [1...100]
ne fait pas ce que vous pensez. Cela crée un tableau avec un seul élément et cet élément unique est une instance Range
dont la première valeur est 1
et dont la dernière valeur est 99
.
Ainsi, après le tri votre problème d'interpolation de chaîne (comme indiqué elsewhere), ceci:
"http://www.web.com/page/#{i}/"
sera la chaîne:
"http://www.web.com/page/1...100/"
et le serveur distant ne sait probablement pas ce que cela veut dire que ça va soit 404 soit vous donner la première page; Vos commentaires ailleurs suggèrent qu'il vous donnera la première page et ignorer la partie ...100
de l'URL.
Si vous voulez boucle de 1
à 99
vous dirais:
(1...100).each do |i|
# `i` will range from 1 to 99 in this block
end
Si vous voulez boucle 1
-100
vous utiliseriez ..
au lieu de ...
:
(1..100).each do |i|
# `i` will range from 1 to 100 in this block
end
Vous pouvez également abandonner complètement la plage et utiliser times
:
99.times do |i|
# `i` will range from 0 to 98 in this block so
# you'd work with `i+1`
end
100.times do |i|
# `i` will range from 0 to 99 in this block so
# you'd work with `i+1`
end
ou upto
(grâce à JKillian pour le rappel de celui-ci):
1.upto(99) do |i|
# `i` will range from 1 to 99 in this block
end
1.upto(100) |i|
# `i` will range from 1 to 100 in this block
end
Il ne peut pas trouver mon url ... quelque chose ne va pas dans la boucle – Gibson