Iterate over any enumerable with an index

Updated . Posted . Visible to the public.

tl;dr: Use with_index


ActiveRecord's find_each with index

If you do not provide a block to find_each, it will return an Enumerator Show archive.org snapshot for chaining with other methods:

Person.find_each.with_index do |person, index|
  person.award_trophy(index + 1)
end

Ruby's map with index

Similarly, you may need an index when using other methods, like map, flat_map, detect (when you need the index for detection), or similar. Here is an example for map:

people.map.with_index do |person, index|
  person.at_rank(index + 1)
end
Last edit
Michael Leimstädtner
License
Source code in this card is licensed under the MIT License.
Posted to makandra dev (2014-10-13 13:00)