2026-06-20 Rails Enumerable#index_with / index_by
Rails の Enumerable#index_with は、配列などの要素をキーにして、ブロックの返り値を値にした Hash を作れる。
%i[a b c].index_with(&:to_s)
# => { a: "a", b: "b", c: "c" }
逆に Enumerable#index_by は、ブロックの返り値をキーにして、要素そのものを値にした Hash を作る。
%w[a b c].index_by(&:to_sym)
# => { a: "a", b: "b", c: "c" }
つまり、次の 2 つは同じ Hash になる。
%i[a b c].index_with(&:to_s) == %w[a b c].index_by(&:to_sym)
# => true