【发布时间】:2013-02-27 16:57:18
【问题描述】:
我的设置:
- Ruby 2.0.0
- Rails 3.2.12
- 最近的
pggem - 最近的
activerecord-postgis-adaptergem - 最近的
rgeo-geojsongem - Postgres 9.1.6
- 后GIS 2
几天前我问过类似的问题。 (Need to convert a Boolean from Postgres (== String) to a Ruby Boolean)。在那里,我必须将自定义选择的值转换为布尔值。这很简单,只需将其添加到我的模型中即可:
def value_name
ActiveRecord::ConnectionAdapters::Column.value_to_boolean(self[:value_name])
end
但现在我收到了一个 Point 类型的值(这是 PostGIS 的一个类型)。它在数据库中的字符串表示形式看起来像 "0101000000EE7C3F355EF24F4019390B7BDA011940",但它必须变成(我认为)RGeo::Feature::Point 或者可能是 RGeo::Geos::CAPIPointImpl ?!
现在看ActiveRecord::ConnectionAdapters::Column(http://rubydoc.info/docs/rails/ActiveRecord/ConnectionAdapters/Column),只能找到value_to_boolean和value_to_decimal。
然后我发现还有ActiveRecord::ConnectionAdapters::PostgreSQLColumn(http://rubydoc.info/docs/rails/ActiveRecord/ConnectionAdapters/PostgreSQLColumn),但是好像没有什么有用的方法。
谢谢!
【问题讨论】:
标签: ruby-on-rails postgresql activerecord postgis rgeo