Ja, du kannst
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
Außerdem sollte ich beachten, dass ein Offset, der größer als Ihre Array-Größe ist, einen Fehler verursacht. Weil:
some_array[1000,-1] => nil
nil.each_with_index => Error 'undefined method `each_with_index' for nil:NilClass'
Was können wir hier tun:
(some_array[offset..-1]||[]).each_with_index{|item, index| some_func(item, index) }
Oder um Offset zu vorherrschen:
offset = 1000
some_array[offset..-1].each_with_index{|item, index| some_func(item, index) } if offset <= some_array.size
Das ist ein bisschen hacky
UPD 2
Soweit Sie Ihre Frage aktualisiert haben und jetzt keinen Array-Offset, sondern einen Index-Offset benötigen, funktioniert die @ sawa-Lösung für Sie einwandfrei