gpt4 book ai didi

ruby-on-rails - 如何在 Ruby 中将排他范围转换为包含范围?

转载 作者:数据小太阳 更新时间:2023-10-29 07:58:12 25 4
gpt4 key购买 nike

我有一个独有的整数范围,例如

range = 1000...10001

我宁愿一直使用包含范围,但我这样做的原因是当我告诉 ActiveRecord 在 PostgreSQL 中存储包含范围时,当我查询回来时我得到的是独占版本。

我想把它转换成一个包含范围,例如1000..10000

我在做:

(range.begin)..(range.end-1)

然而,它感觉笨拙且不像 ruby 。

我的整个 API 都依赖于传递范围,但我也在考虑故事化 2 个值或在 Postgres 中存储数组而不是范围。

有更好的方法吗?


编辑(一些说明)

考虑到范围之间的巨大差异,我想尽可能高效地执行此操作

我的用例是使用范围的开始和结束部分。我实际上并没有遍历它们或检查是否包含在内。我只是认为 ruby 范围是表示实际范围的好方法,例如显示价格($ 1.000 - $ 10.000)

最佳答案

我会使用 Range#minRange#max :

exclusive_range = (1000...10001)
inclusive_range = (exclusive_range.min..exclusive_range.max)
#=> 1000..10000

关于ruby-on-rails - 如何在 Ruby 中将排他范围转换为包含范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58062682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com