2012-10-11 58 views
0

我有一個csv文件(@fn),它接近100,000條記錄(大約50 megs),我將其插入到mysql表中。例如:如何在瀏覽器中清空緩衝區並將其打印到緩衝區中

FCSV.foreach(@fn, {:headers => true}) do |row| 
    model = Model.new(Hash[row]) 
    model.save 
end 

早在我的ASP天,我可以輸出和打印緩衝區爲html給用戶絲網durring這個循環,從而提供視覺反饋多遠沿着過程了。在軌道上的紅寶石,有沒有這種方法的等價物?

如果有幫助,我使用Rails 2.3.9和Ruby 1.8.7。

我意識到有十幾種方法來完成反饋,比如後臺作業等。但是我真正想知道的是如何在每次迭代時將緩衝區轉儲並打印到屏幕(而不是控制檯)循環。

回答

0

這個問題可能對你有一些幫助。它解釋瞭如何使用較舊的rails客戶端進行流式處理。

Ruby on Rails 3: Streaming data through Rails to client

這裏是直接從崗位的例子:

render :text => proc { |response, output| 
    10_000_000.times do |i| 
    output.write("This is line #{i}\n") 
    end 
} 
+0

我可以看到我的調試器的輸出,當我使用打印(「這是行#{Ĵ} \ n」),但沒有任何東西會通過output.write(「This is line#{j} \ n」)轉儲到瀏覽器。 – iamtoc

+0

我還沒有用Rails〜2工作過,而且我找到的所有文檔都是Rails〜3。我不確定究竟發生了什麼問題,對不起。 – sunnyrjuneja