how to convert a hash value returned from a date_select in rails to a Date object?

前端 未结 5 1664
感动是毒
感动是毒 2020-12-18 00:50

I have a date_select in my view inside a form, however on submit the value returned is in a hash form like so:

{\"(1i)\"=>\"2010\", \"(2i)\"=>\"8\", \"         


        
5条回答
  •  伪装坚强ぢ
    2020-12-18 01:38

    I don't know about a rails way, but this "one-liner" does the trick:

    irb(main):036:0> d = Date.parse( {"(1i)"=>"2010", "(2i)"=>"8", "(3i)"=>"16"}.to_a.sort.collect{|c| c[1]}.join("-") )
    => #
    irb(main):037:0> d.to_s
    => "2010-08-16"
    

    Or, with less magic:

    h={"(1i)"=>"2010", "(2i)"=>"8", "(3i)"=>"16"}
    d=Date.new(h['(1i)'].to_i, h['(2i)'].to_i, h['(3i)'].to_i)
    d.to_s
    => "2010-08-16"
    

提交回复
热议问题