AFAIK måste du använda copy_data
metod på den underliggande PostgreSQL-databasanslutningen för detta:
Och det finns till och med ett exempel:
conn.copy_data "COPY my_table TO STDOUT CSV" do
while row=conn.get_copy_data
p row
end
end
ActiveRecords omslag för den råa databasanslutningen vet inte vad copy_data
är men du kan använda raw_connection
för att packa upp det:
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
Det skulle lämna dig med en rad CSV-strängar i csv
(en CSV-rad per arraypost) och du kan csv.join("\r\n")
för att få den slutliga CSV-datan.