gpt4 book ai didi

ruby - 导轨 : seeding database data and date formats

转载 作者:数据小太阳 更新时间:2023-10-29 06:40:49 25 4
gpt4 key购买 nike

我正在尝试使用 db/seed.rb 文件和 rake db:seed 命令将一些数据播种到我正在开发的 Rails 3 应用程序中。

我播种的数据涉及一个名为 Meeting 的数据库表,该表具有三列:字符串标题、日期时间开始日期、日期时间结束日期。我尝试插入的日期时间采用“mm/dd/yyyy hh:mm”格式——例如。 “01/02/2003 13:23”= 2003 年 1 月 2 日下午 1:23。但是,DateTime.parse() 始终会出现“无效日期”错误——因为它试图以“dd/mm/yyyy”格式解析日期。

根据我的谷歌搜索,我被引导相信在解析 DateTime 对象时,编译器会查看传入的字符串并进行一些仓促的模式匹配,然后映射“mm/dd/yyyy”和“dd-mm- yyyy"根据美国/英国(等)标准,根据是否使用斜杠或破折号作为分隔符。然而,情况似乎并非如此,我想知道为什么。以及如何修复它。

这就是我为 session 播种的方式——第一个正确解析,第二个失败。

Meeting.create([
{
:title => "This meeting parses fine",
:startDate => DateTime.parse("09/01/2009 17:00"),
:endDate => DateTime.parse("09/01/2009 19:00")
},
{
:title => "This meeting errors out",
:startDate => DateTime.parse("09/14/2009 8:00")
:endDate => DateTime.parse("09/14/2009 9:00")
}])

最佳答案

你可以试试Date.strptime

:startDate => DateTime.parse("09/14/2009 8:00") 
#=>
:startDate => DateTime.strptime("09/14/2009 8:00", "%m/%d/%Y %H:%M")

所以

Meeting.create([
{
:title => "This meeting parses fine",
:startDate => DateTime.strptime("09/01/2009 17:00", "%m/%d/%Y %H:%M"),
:endDate => DateTime.strptime("09/01/2009 19:00", "%m/%d/%Y %H:%M")
},
{
:title => "This meeting errors out",
:startDate => DateTime.strptime("09/14/2009 8:00", "%m/%d/%Y %H:%M")
:endDate => DateTime.strptime("09/14/2009 9:00", "%m/%d/%Y %H:%M")
}])

关于ruby - 导轨 : seeding database data and date formats,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5474164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com