我正在从 rails 2.3 升级到 3.2,但在日期转换时遇到了问题。
在 rails 2.3 中,日期转换默认格式为 mm/dd/yyyy,当我将此格式的字符串分配给 active_record 模型时,它会正确转换日期。例如
我有一个用户对象(active_record 对象)和
在轨道 2.3 中
user.registered_on = "10/03/2013" #=> Oct 3, 2013
但是在rails 3.2中也是一样的
user.registered_on = "10/03/2013" #=> March 10, 2013
如何解决这个问题?
我尝试在其中一个初始化程序文件中设置 Date::DATE_FORMATS[:default] = '%m/%d/%Y' ,但这没有任何好处。
我什至为日期设置了语言环境,但这也不起作用。
重现此问题的一种完美方法是:
创建两个应用程序,一个在 rails 2.3.x 版本,另一个在 rails 3.2.x 版本。
在每个应用程序中创建一个具有至少一个日期时间字段的模型。
为这两个应用程序创建和迁移数据库。
在每个应用程序中从终端转到 rails 控制台。
创建一个 active_record 模型对象并将这个“10/3/2013”字符串分配给 datetime 字段,然后查看结果都是不同的日期。
我只需要一个解决方案,如何修复此日期或日期时间转换并使其与 rails 2.3 相同