【发布时间】:2014-03-01 01:52:27
【问题描述】:
最终的结果是让我的模型读取以“manager_”开头的所有表,并将记录序列化为 JSON,以传输到从属应用程序,该从属应用程序会将 JSON 字符串作为同步过程写回其数据库。
即,DB > JSON >(通过网络传输)> JSON > DB
我现在遇到的问题是 DateTime 对象在最后的时区内用冒号编码,当尝试将属性写入数据库时,mysql 正在呕吐。我已经在其他地方读到了,所以我需要对方法进行猴子补丁:
module ActiveSupport
class TimeWithZone
# There shouldn't be a colon in the timezone for storing into the db
def to_json
super.gsub(/:(?!.*:)/,'')
end
end
end
但是,例如,虽然这适用于对 Time.zone.now 的调用,但它不适用于直接 Time.now,因此记录仍在时区中使用冒号进行序列化。
我得到了什么:2014-02-28T20:37:13-05:00
我应该得到什么:2014-02-28T20:37:13-0500
【问题讨论】:
标签: mysql ruby-on-rails json activerecord ruby-on-rails-4