Rails解码日期超出会话



我使用date_select创建了一个包含三个字段的页面来创建日期,因此我的会话最终包含以下字段:

 {"CompanyUk"=>{"company_number"=>"12345",
 "incorporation_date(1i)"=>"2011",
 "incorporation_date(2i)"=>"5",
 "incorporation_date(3i)"=>"27"}}

从三个不同的字段重建日期的好方法是什么?很明显,我可以把它们一个接一个地取出并重新组装,但这似乎比可能的要多出很多额外的代码。

((1..3).map { |i| session['CompanyUk']["incorporation_date(#{i}i)"] } * '/').to_date

我有:

datemap = params["CompanyUk"].select {|k,v| k.start_with? "incorporation_date"}
inc_date = Date.new(*(datemap.values.map {|x| x.to_i}))

这比森喜朗的解决方案要复杂得多。

或者,基于Mori的解决方案,但避免字符串串联:

Date.new *((1..3).map { |i| params['CompanyUk']["incorporation_date(#{i}i)"].to_i })

相关内容

  • 没有找到相关文章

最新更新