在rails 3.2中存储带时区的时间戳

 田卫涛1983_407 发布于 2023-02-09 12:37

我正在尝试使用其包含的时区将所有时间戳存储在rails应用程序中.我很好用ActiveRecord将它们转换为utc,但是我有多个应用程序命中同一个数据库,其中一些是按时区要求实现的.所以我想做的就是让activerecord像往常一样转换我的时间戳,然后用字符串'America/Los_Angeles'或者附加到时间戳的任何适当的时区将它们写入数据库.我目前在jruby 1.7.8上运行rails 3.2.13,它实现了ruby 1.9.3 api.我的数据库是postgres 9.2.4,与activerecord-jdbcpostgresql-adaptergem 连接.列类型是带时区的时间戳.

我已经activerecord-native_db_types_override通过在我的environment.rb中添加以下行来更改gem 的自然activerecord映射:

  NativeDbTypesOverride.configure({
    postgres: {
      datetime: { name: "timestamp with time zone" },
      timestamp: { name: "timestamp with time zone" }
    }
  })

我的application.rb目前包含

  config.active_record.default_timezone = :utc
  config.time_zone = "Pacific Time (US & Canada)"

我怀疑我可以重写ActiveSupport::TimeWithZone.to_s并更改它:db格式输出正确的字符串,但我还没能完成那项工作.任何帮助深表感谢.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有