AFAIK necesitas usar el copy_data
en la conexión de la base de datos PostgreSQL subyacente para esto:
E incluso hay un ejemplo:
conn.copy_data "COPY my_table TO STDOUT CSV" do
while row=conn.get_copy_data
p row
end
end
El contenedor de ActiveRecord para la conexión de la base de datos sin formato no sabe qué copy_data
es pero puede usar raw_connection
para desenvolverlo:
conn = ActiveRecord::Base.connection.raw_connection
csv = [ ]
conn.copy_data('copy stories to stdout with csv header') do
while row = conn.get_copy_data
csv.push(row)
end
end
Eso te dejaría con una matriz de cadenas CSV en csv
(una fila CSV por entrada de matriz) y podría csv.join("\r\n")
para obtener los datos CSV finales.