ruby-on-rails - 如何将从 rails 中的 date_select 返回的哈希值转换为 Date 对象?

标签 ruby-on-rails

我在表单中的 View 中有一个 date_select,但是在提交时,返回的值采用散列形式,如下所示:

{"(1i)"=>"2010", "(2i)"=>"8", "(3i)"=>"16"}

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

有没有办法做到这一点?

谢谢

最佳答案

我不知道 Rails 的方式,但是这个“单线”可以解决问题:

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

或者,用更少的魔法:
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"

关于ruby-on-rails - 如何将从 rails 中的 date_select 返回的哈希值转换为 Date 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3501180/

相关文章:

ruby-on-rails - Ruby/Rails - 将 Google Apps 脚本转换为 Rails

ruby-on-rails - RoR - rspec 测试失败,不应该

ruby-on-rails - 在不同版本的两个 Rails 应用程序之间共享设计 session cookie

javascript - 将 jquery 代码包装在 $(document).ready() 函数中有多重要?

ruby-on-rails - ElasticSearch Rails - 设置自定义分析器

ruby-on-rails - Windows 上 Ruby on Rails 的 Apache 模块

ruby-on-rails - 在 Rails 中使背景宽度为 100%

ruby-on-rails - 销毁记录时应该渲染什么?

ruby-on-rails - Rails 低级缓存在开发模式下不起作用

ruby-on-rails - 使用 Capistrano 从 Git 进行部署而无需硬重置?