Я бы хотел изменить оператор по умолчанию, который ActiveRecord использует для запроса таблицы модели. По умолчанию он запрашивает таблицу «кабелей», например, ...
this_cable = Cable.first
результаты в
SELECT "cables".* FROM "cables" LIMIT 1
Я хотел бы найти способ, которым это может закончиться
SELECT *,askml(wkb_geometry) as kml FROM "cables" LIMIT 1
Таким образом, я могу вызвать функцию базы данных и вести себя как поле на объекте.
this_cable.kml
=> "<LineString><coordinates>-73.976879999999994,40.674999999999997 -73.977029999999999,40.674779999999998 -73.977170000000001,40.674770000000002 -73.97775,40.67501</coordinates></LineString>"
Этого можно достичь, добавив область действия
scope :with_kml, "*,askml(wkb_geometry) as kml"
Но я полагаю, это немного грязно. Мне бы хотелось, чтобы этот столбец «kml» всегда был там, без необходимости вызывать область действия with_kml.
Есть идеи?