Так, ти можеш
some_array[offset..-1].each_with_index{|item, index| some_func(item, index) }
some_array[offset..-1].each_with_index{|item, index| some_func(item, index+offset) }
some_array[offset..-1].each_with_index{|item, index| index+=offset; some_func(item, index) }
UPD
Також я повинен помітити, що якщо зміщення більше, ніж ваш розмір масиву, це буде помилка. Оскільки:
some_array[1000,-1] => nil
nil.each_with_index => Error 'undefined method `each_with_index' for nil:NilClass'
Що ми можемо тут зробити:
(some_array[offset..-1]||[]).each_with_index{|item, index| some_func(item, index) }
Або щоб попередньо визначити зміщення:
offset = 1000
some_array[offset..-1].each_with_index{|item, index| some_func(item, index) } if offset <= some_array.size
Це трохи хакі
UPD 2
Наскільки ви оновили своє питання, і тепер вам потрібно не зміщення масиву, а зміщення індексу, тому рішення @sawa буде добре працювати для вас