I am not sure I understand the question there are many methods of accessing the index for an Array e.g.
alphabet = ('a'..'z').to_a
alphabet[0]
#=> "a"
alphabet.values_at(2,3,12)
#=> ["c","d","m"]
alphabet.index('r')
#=> 17
alphabet.fetch(15)
#=> "p"
There are many more such as #at, #find_index, even #rindex which will look for the last occurance. If you need to iterate index's you can use each_index or each_with_index. Since your question does not truely explain the scenario all I can do is explain how to deal with Array indices. For a more pertinent answer please update your question to show both data and expected results.
Here is what I can gather from your question
@product = Product.find(some_id)
@slot = @product.slot
@slots = Slot.where("id > ?", @slot.id) #return all slots after the @product.slot
@product.slot.position(which seems to be x here) from@slotsarray ?