我正在从 Rails 2.3 升级到 3.2,我在日期转换方面遇到了问题。
在 rails 2.3 中,日期转换默认格式是 mm/dd/yyyy,当我将这种格式的字符串分配给 active_record 模型时,它会正确转换日期。例如
我有一个用户对象(active_record 对象)和
在 rails 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 相同
最佳答案
gem "american_date"解决了这个问题。
关于ruby-on-rails - ActiveRecord 中从 Rails 2.3 到 3.2 的日期转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19294803/