Я продолжаю использовать эту ссылку в качестве главной ссылки для Google "ruby for loop", поэтому я хотел добавить решение для циклов, где шаг не был просто "1". В этих случаях вы можете использовать метод step, который существует в объектах Numerics и Date. Я думаю, что это близкое приближение для цикла for.
start = Date.new(2013,06,30)
stop = Date.new(2011,06,30)
# step back in time over two years, one week at a time
start.step(stop, -7).each do |d|
puts d
end