У меня есть контроллер в Rails, который генерирует отчеты CSV с использованием FasterCSV. Эти отчеты содержат около 20 000 строк, а может и больше.Экспорт больших объемов данных с использованием FasterCSV с Rails
При создании csv_string
в моей реализации ниже занимает около 30 секунд или более. Есть ли лучший/более быстрый способ экспорта данных? Любой способ вывода данных без сохранения его в памяти в 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'