我有一个csv文件(@fn),它有近100,000条记录(大约50兆),我将其插入到mysql表中。例如:
FCSV.foreach(@fn, {:headers => true}) do |row|
model = Model.new(Hash[row])
model.save
end
回到我的ASP时代,我可以在此循环中输出并将缓冲区作为html打印到用户屏幕,以便提供关于该过程有多远的视觉反馈。在轨道上的红宝石中,是否有相同的方法?
如果有帮助,我使用的是Rails 2.3.9和Ruby 1.8.7。
我意识到有十几种方法可以完成反馈,例如后台作业等。但我真正想知道的是如何在每次迭代时将缓冲区转储并打印到屏幕(而非控制台)。循环。
答案 0 :(得分: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
}