У меня есть контроллер в Rails, который генерирует отчеты CSV, используя FasterCSV. Эти отчеты будут содержать приблизительно 20 000 строк, а может и больше.
Это займет около 30 секунд или больше при создании csv_string
в моей реализации ниже. Есть ли лучший / более быстрый способ экспорта данных? Любой способ вывести данные без необходимости хранить все это в памяти в csv_string
?
Моя текущая реализация выглядит следующим образом:
@report_data = Person.find(:all, :conditions => "age > #{params[:age]}")
csv_string = FasterCSV.generate do |csv|
@report_data.each do |e|
values = [e.id, e.name, e.description, e.phone, e.address]
csv << values
end
end
send_data csv_string, :type => "text/plain",
:filename=>"report.csv", :disposition => 'attachment'