FasterCSV を使用して CSV レポートを生成するコントローラーが Rails にあります。これらのレポートには、約 20,000 行、場合によってはそれ以上の行が含まれます。
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'