Мне нужно было сделать несколько сложных подзапросов для проекта, над которым я работаю. Я не мог понять, как сделать это в простой активной записи. Я попробовал несколько вещей и в итоге выбрал общий SQL-запрос, используя
ActiveRecord::Base.connection.exec_query(
"
SELECT gid as id, (dp).path, (dp).geom, ST_AsText((dp).geom), ST_X((dp).geom) as longitude, ST_Y((dp).geom) as latitude
FROM (
SELECT gid, ST_DumpPoints(ST_AsText(ST_Transform(geom, 4326))) as dp
FROM apples
WHERE gid in (#{@object.id})
) AS GEO;
"
)
Здесь я выбираю из подзапроса и преобразовываю геометрию в Точки, используя обычный postgresql. Если бы я делал это в запросах ActiveRecord, как мне это сделать? Возможен ли этот тип запроса в ActiveRecord?