0
FasterCSV를 사용하여 CSV 보고서를 생성하는 레일즈에 컨트롤러가 있습니다. 이 보고서에는 약 20,000 개의 행이 포함됩니다.FasterCSV with 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'