我正在尝试手动管理 rails 模型中的一些几何(空间)列。
更新几何列时,我在 rails 中执行此操作:
self.geom="POINTFROMTEXT('POINT(#{lat},#{lng})')"
这是我希望在 SQL 更新中的值,因此由数据库评估。然而,当这已经通过主动记录魔法时,它就变成了:
INSERT INTO `places` (..., `geom`) VALUES(...,'POINTFROMTEXT(\'POINT(52.2531519,20.9778386)\')')
换句话说,引号被转义了。这对其他列很好,因为它可以防止 sql 注入,但不适用于此。这些值保证是浮点数,我希望更新看起来像:
INSERT INTO `places` (..., `geom`) VALUES(...,'POINTFROMTEXT('POINT(52.2531519,20.9778386)')')
那么有没有办法关闭特定列的转义?或者更好的方法来做到这一点?
(我试过使用 GeoRuby+spatial 适配器,空间适配器对我来说似乎太麻烦了,而且我不需要所有的功能——因此试图直接做)。