Я пытаюсь вручную управлять некоторыми геометрическими (пространственными) столбцами в модели рельсов.
При обновлении столбца геометрии я делаю это в рельсах:
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 + пространственный адаптер, и пространственный адаптер мне кажется слишком глючным, плюс мне не нужны все функции - следовательно, я пытаюсь сделать это напрямую).