ruby on rails - Hash is not saving date as values? -


i have hash in ruby 1.8.7 , rails 2.3.8:

   important_dates = params[:important_dates]    important_dates =#>      {"third_test"=>"july 11, 2014", "fourth_test"=>"august 08, 2014", "second_test"=>"june 13, 2014", "sixth_test"=>"august 05, 2014"} 

the dates coming calendar_select_date_tag in rails passing date object, in params getting string when try doing this:

    new_dates = important_dates.each_value{|r| r.to_date}             new_dates[:fourth_test].class.inspect #=> string  

i have been on hours now.

new_dates = hash[important_dates.map{|k,v| [k, v.to_date]}] 

or if you're using ruby 2.0 or higher:

new_dates = important_dates.map{|k,v| [k, v.to_date]}.to_h 

update: why answer not working:

each_value returning initial hash iterates on , drops block return values. note, example:

h = {a: 'foo', b: 'bar'} h.each_value {|v| v.upcase }     #=> upcase creates new string object h                                #=> {a: 'foo', b: 'bar'} 

however, if value mutable, can try altering during iteration:

h = {a: 'foo', b: 'bar'} h.each_value {|v| v.upcase! }     #=> upcase! alters existing string object h                                #=> {a: 'foo', b: 'bar'} 

new_dates = important_dates.each_value{|r| r.to_date}

since want change string object date object, there absolutely no way of doing using each_value.


Comments

Popular posts from this blog

Android layout hidden on keyboard show -

google app engine - 403 Forbidden POST - Flask WTForms -

c - Why would PK11_GenerateRandom() return an error -8023? -