Ruby on rails Mongoid保存日期

Ruby on rails Mongoid保存日期,ruby-on-rails,ruby,date,datetime,mongoid,Ruby On Rails,Ruby,Date,Datetime,Mongoid,我有一个人模型: class Person include Mongoid::Document include Mongoid::MultiParameterAttributes field :dob, :type => Date end 我正在从csv文件中以字符串形式获取我的date值: “1990-10-23” 如何在db中保存它们 我试过了 解析日期(“1990-10-23”) 但是它给出了无效日期错误。您的字段中有一个输入错误(不必要的冒号)。您需

我有一个模型:

class Person

  include Mongoid::Document
  include Mongoid::MultiParameterAttributes  

  field :dob, :type => Date  

end  
我正在从csv文件中以字符串形式获取我的
date
值:

“1990-10-23”

如何在db中保存它们

我试过了

解析日期(“1990-10-23”)


但是它给出了无效日期错误。

您的字段中有一个输入错误(不必要的冒号)。您需要的是:

field :dob, :type => Date
然后,您将能够执行以下操作:

Person.create(:dob => Date.new(1981, 1, 1))

Mongoid中的类型总是类(而不是符号)。支持的类的完整列表是。

我终于找到了在rails中使用它的方法

"1990-10-23".to_time(:local)
> 1990-10-23 00:00:00 +0530  

"1990-10-23 11:00 PM".to_time(:utc)  
> 1990-10-23 23:00:00 +0530

欢迎使用任何其他方法。

您使用的是什么版本?当您使用Date.parse(“1990-10-23”)(请注意问题中的打字错误=>“1990-10-23”)或当您尝试创建一个人时,是否出现了错误?我的意思是,错误与mongoid或rails ruby有关?我试过你的例子,它在我的计算机(ruby 1.9.3、rails 3.2.0和mongoid 3.1.5)的控制台上运行,效果很好。但当我从csv文件中的数据创建一个新人时,它会抛出错误
Date.parse()
在控制台中工作正常。因此,错误可能在您的csv文件中。哪条线路出故障了?csv行中日期字段的值是多少?不,csv文件中没有错误。只是csv文件的日期格式为字符串
1999-2-23
。在控制台中,我可以执行
date.parse(“1999-2-23”)
。但是在保存一个人时,如果我将
:dob
保存为person.first.dob=
Date.parse(“1999-2-23”)
则会抛出一个
无效日期的错误。我无法重现您的错误,它对我有效(再次在控制台中)。你能把代码粘贴到异常出现的地方吗?