2010-02-24 39 views
0

我在Rails中有一個控制器,它使用FasterCSV生成CSV報告。這些報告將包含大約20,000行,也許更多。使用Rails導出大量數據使用FasterCSV

當我在下面的實現中創建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' 

回答