我使用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 })