我在面向地理的应用程序中使用 activerecord-postgis-adapter 和 squeel。使用基于 find 和 where 工作正常和 squeel 的各种查询获取数据允许我使用 PostgreSQL/PostGIS 函数基于空间函数和数据类型进行查询。
但是,我不知道在执行 INSERT 和 UPDATE 时如何访问类似的功能。假设我想做以下事情:
UPDATE object SET raster = ST_AsRaster(ST_Buffer(ST_Point(1,5),10),150, 150, '2BUI')
where id = 12345;
我怎么能执行这样的查询?Squeel 似乎甚至不支持 SELECT 以外的其他查询。
在一个完美的世界中,我什至希望 Rgeo 的数据类型在用于 UPDATE 查询时自动转换,就像 where 查询一样。
我知道我可以退回到
ActiveRecord::Base.connection.execute
,但宁愿避免这种情况,除非有人告诉我这是唯一的方法。
-ra