使用JSONB在数组中存储范围

时间:2016-08-04 13:34:01

标签: ruby-on-rails postgresql range ruby-on-rails-5 jsonb

我在迁移中将属性data设置为JSONB类型:

t.jsonb  :data, null: false, default: {}

尝试保存以下内容时:

my_object.data = [1..3, 5..7]
my_object.save

范围转换为字符串:

my_object.data
=> ["1..3", "5..7"]

有没有办法处理带有JSONB的范围数组?

1 个答案:

答案 0 :(得分:1)

如果您只存储范围,则可以覆盖data

的获取者
class MyObject < ActiveRecord::Base
  def data
    super.map do |str|
      Range.new(*str.split("..").map(&:to_i))
    end
  end
end