意外とハマったのでメモ。 例えば、配列の各要素を数値から文字列に変換したいと思ったら、map!(collect!)メソッドを使って実現できます。 array = [1, 2] array.map!{|item| item.to_s} #=> ["1", "2"] では、これと同様のことをハッシュで行う(各キーに割り当てられた値を数値から文字列に変換する)には、どうすればよいでしょうか。 HashクラスもEnumerableインクルードしてるから、map!で実現できる? hash = {:a => 1, :b => 2} hash.map!{|key, value| value.to_s} #=> NoMethodError: undefined method `map!' for {:a=>1, :b=>2}:Hash NoMethodErrorとなってしまいました。 Rubyリファレンス