Rails解码会话的日期?

时间:2011-05-27 15:35:30

标签: ruby-on-rails ruby ruby-on-rails-3

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

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

从三个不同的领域重建日期的好方法是什么?显然,我可以逐个推出它们并重新组装,但这似乎是可能的额外代码。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

我有:

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

这比Mori的解决方案复杂得多。

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

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