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”)
则会抛出一个无效日期的错误。我无法重现您的错误,它对我有效(再次在控制台中)。你能把代码粘贴到异常出现的地方吗?