Rails 5 和 PostgreSQL 'Interval' 数据类型

2024-01-12

Rails 真的不能正确支持 PostgreSQL 的区间数据类型吗?

我不得不使用这个堆栈溢出答案 https://stackoverflow.com/questions/20328028/using-interval-in-postgresql-with-ruby-on-rails从 2013 年开始创建一个间隔列,现在看起来我需要使用这段代码 https://gist.github.com/clarkdave/6529610从 2013 年开始,让 ActiveRecord 将间隔视为字符串以外的其他内容。

是这样吗?我是否最好只使用整数数据类型来表示分钟数?


从 Rails 5.1 开始,您可以使用 postgres 'Interval' 数据类型,因此您可以在迁移中执行以下操作:

add_column :your_table, :new_column, :interval, default: "2 weeks"

虽然ActiveRecord只将间隔视为字符串,但是如果您设置IntervalStyle to iso_8601在你的 postgresql 数据库中,它将以 iso8601 样式显示间隔:2 weeks => P14D

execute "ALTER DATABASE your_database SET IntervalStyle = 'iso_8601'"

然后您可以直接将该列解析为ActiveSupport::Duration

In your model.rb

def new_column
  ActiveSupport::Duration.parse self[:new_column]
end

有关 ISO 8601 间隔的更多信息,请访问https://en.wikipedia.org/wiki/ISO_8601#Time_intervals https://en.wikipedia.org/wiki/ISO_8601#Time_intervals

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails 5 和 PostgreSQL 'Interval' 数据类型 的相关文章

随机推荐

  • 仅具有 1 或 2 个可选字段的数据库表...拆分为多个表?

    在我正在设计的数据库中 有一个相当中心的表代表已售出或待售的物品 它区分个人销售 如 eBay 和正规公司的销售 这意味着实际上有 1 个或两个字段并不同样适用于两种情况 例如 一个字段仅在一种情况下使用 另一个字段在一种情况下是可选的 但
  • 如何以编程方式使用自动布局将活动指示器定位到其超级视图的中心?

    为什么以下代码无法将活动指示器定位到其超级视图的中心 UIActivityIndicatorView activityIndicator UIActivityIndicatorView alloc initWithActivityIndic
  • 如何检查union当前使用的是什么类型?

    假设我们有一个工会 typedef union someunion int a double b myunion 在我设置后 是否可以检查联合中的类型a 123 我的方法是将此联合添加到某个结构中 并在其为 int 时将 uniontype
  • Yii CGridView 仅隐藏过滤器输入

    使用 CGridView 时 过滤器输入字段由组件自动生成 我想选择哪些列将显示输入字段 例如 我的模型有 5 列 我希望 CGridView 仅显示第 1 列和第 2 列的输入过滤器 有没有一种方法可以不使用 CSS 或 jQuery 而
  • Google Charts LineChart 的图表范围过滤器

    我正在使用 Google Charts 折线图 但在将其绑定到图表范围过滤器时遇到一些问题 这是我尝试过的 容器 div div style width 100 height 100 div div style width 100 heig
  • 滚动总结以另一个数据帧上的多个变量为条件

    我有以下数据示例 trap data lt structure list site c 1 2 3 3 trap date structure c 18809 18809 18307 18322 class Date class data
  • 如何创建一个禁用 JButton 的方法?

    我正在尝试制定一种禁用方法JButtons The JButtons位于网格形式的数组中 JButton int int 并且整数应该是坐标 import java awt import java awt event import java
  • 如何使用 JDBC API 捕获 Hive 退出状态或错误代码

    使用 JDBC API 在 hive 中执行插入查询 但查询未运行 有人可以建议出了什么问题吗 另外 请让我知道如何捕获运行查询时 hive 抛出的错误代码 蜂巢版本0 13 0 当我在命令行中运行日志中生成的查询时 它们工作正常 publ
  • 在 docker 容器上运行 powershell 或 cmd

    我想检查我的 docker 容器的内容 我想运行一个电源外壳或容器内的命令提示符 以便我可以列出目录 该容器镜像正在托管ASP NET Web API使用 ASP net 的应用程序4 6 1框架 我运行了以下命令 docker conta
  • 在 Dart 中使用 Jquery UI

    我正在尝试在 Dart 中创建一个简单的对话框 我认为使用现有的 javascript 库更容易 Here http jqueryui com dialog 你可以找到基本的例子 基本上 dialog dialog 在互联网和 stacko
  • Node-firebird顺序选择

    我正在尝试使用顺序选择选项从 Firebird DB 获取数据 我想获取前 500 行 正如您在我的代码中看到的那样 为了进行测试 我为每个 行 增加 k 并记录 k 和 md5 到控制台 当我运行代码时 它会给出随机的行数 但行数总是超过
  • 使用 python 脚本进行谷歌搜索[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 任何人都可以帮助我如何编写一个Python脚本来搜索谷歌并打印热门结果的链接 试试这个 使用起来非常简
  • 如何将 Material UI 自动完成多项选择限制为一组

    我想将 Material UI 自动完成组件中的多个选择限制为同一组中的选项 请参阅链接沙箱以了解没有实施解决方案的问题设置 https codesandbox io s material demo 7g4ed file demo js h
  • 在哪里可以下载 Java Mission Control(7)(OpenJDK11 或更高版本)? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Java Mission Control JMC 宣布从 JDK 11 起从 Oracle 移交给开源
  • 如何在Vue Router中模拟页面加载时的“滚动到锚点”?

    我有一个小型 Vue js SPA 具有以下路由器配置 取自docs https router vuejs org en advanced scroll behavior html export default new VueRouter
  • PG::ForeignKeyViolation:错误:表“xxx”上的更新或删除违反了外键约束

    我有几个表 它们具有与之关联的外键约束 每个表都以分层方式引用另一个表 如下所述 当我试图摧毁一家至少有 1 个项目 至少有 1 个任务 至少有 1 个任务时间的公司时 就像这样 irb main 014 0 gt Company firs
  • Azcopy:是否可以使用新的 SAS 密钥恢复下载

    昨天我开始使用 azcopy 下载更大的数据块 大约 500GB 我让它运行了一整夜 并且 当您进行大量下载 上传时 我的 Windows 桌面认为它有一个重要更新并且需要重新启动 通常情况下 我会在早上恢复下载 但是 现在我收到授权错误
  • 如何计算音频流中每个数据包的 RTP 时间戳

    我阅读了 RTP 规范 但似乎无法理解 RTP 数据包时间戳 我尝试在我的服务器中以不同的方式实现它 但我无法让玩家正确播放它 我在这里的 错误 行为是 我使用 VLC 播放器播放 RTSP url 到我的服务器 我发现玩家的日志说 缓冲太
  • java中捕获javascript返回值

    通过使用 Java Sripting API 我能够在 Java 中执行 JavaScript 但是 有人可以解释一下如何在Java中捕获JS的返回值吗 在下面的示例中 我可以使用调用 script2 inv invokeFunction
  • Rails 5 和 PostgreSQL 'Interval' 数据类型

    Rails 真的不能正确支持 PostgreSQL 的区间数据类型吗 我不得不使用这个堆栈溢出答案 https stackoverflow com questions 20328028 using interval in postgresq