Postgres范围字段+ Rails表单

时间:2015-06-23 21:04:36

标签: ruby-on-rails ruby postgresql

是否有任何标准方法可以将Postgres range types与Rails表单帮助器集成?我基本上需要一个最小和最大字段,可以在保存时转换为范围。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

起初我在考虑这样的事情:

class Model
  delegate :begin, :end, to: :range, prefix: true, allow_nil: true # Replace :range with your field name
end

获取方法:range_beginrange_end。我检查了文档,这些方法是只读的。

所以你还需要设置者:

class Model
  delegate :begin, :end, to: :range, prefix: true, allow_nil: true

  def range_begin=(value)
    self.range = Range.new(value, (range_end || value))
  end

  def range_end=(value)
    self.range = Range.new((range_begin || value), value)
  end
end

如果你没有在setter中使用||,那么你会在空记录中获得ArgumentError: bad value for range

在您的观看次数中,您可以使用字段range_beginrange_end的常规输入。