Sarun Sermsuwan
Sarun Sermsuwan

Reputation: 3818

merge some complex hashes in ruby

I'd like to merge the following hashes together.

 h1 = {"201201" => {:received => 2},   "201202" => {:received => 4 }}
 h2 = {"201201" => {:closed => 1},  "201202" => {:closed => 1 }}

particularly, my expected result is:

h1 = {"201201" => {:received => 2, :closed => 1},  "201202" => {:received => 4, :closed => 1 }}

I have tried every way as:

h = h1.merge(h2){|key, first, second| {first , second} }

unfortunately, neither seemed to work out fine for me. any advice would be really appreciated.

Upvotes: 3

Views: 326

Answers (1)

Hck
Hck

Reputation: 9167

This should work for you:

h = h1.merge(h2){|key, first, second| first.merge(second)}

Upvotes: 6

Related Questions