加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何将rails中date_select返回的哈希值转换为D

发布时间:2020-12-16 19:19:42 所属栏目:百科 来源:网络整理
导读:我在视图中的一个表单中有一个date_select,但是在提交时,返回的值是一个散列形式,如下所示: {"(1i)"="2010","(2i)"="8","(3i)"="16"} 如何将其转换为rails中的日期格式,以便我可以在查询数据库时将其用作条件,例如:condition = {:dates ==:some_date_fro
我在视图中的一个表单中有一个date_select,但是在提交时,返回的值是一个散列形式,如下所示:
{"(1i)"=>"2010","(2i)"=>"8","(3i)"=>"16"}

如何将其转换为rails中的日期格式,以便我可以在查询数据库时将其用作条件,例如:condition => {:dates ==:some_date_from_date_select}?我试着调用Date.parse(:some_date_from_date_select),但它不起作用,因为它期望一个字符串而不是一个哈希映射.

有没有铁路方式来做到这一点?

谢谢

解决方法

我不知道有关导轨的方式,但这种“单线程”可以解决问题:
irb(main):036:0> d = Date.parse( {"(1i)"=>"2010","(3i)"=>"16"}.to_a.sort.collect{|c| c[1]}.join("-") )
=> #<Date: 4910849/2,2299161>
irb(main):037:0> d.to_s
=> "2010-08-16"

或者,减少魔力:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读