0

我有一个 csv 文件 (@fn),其中包含近 100,000 条记录(约 50 兆),我将其插入到 mysql 表中。例如:

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

回到我的 ASP 时代,我可以在此循环期间将缓冲区作为 html 输出并打印到用户屏幕,以便提供有关该过程的进度的视觉反馈。在 ruby​​ on rails 中,是否有与这种方法等效的方法?

如果有帮助,我正在使用 Rails 2.3.9 和 Ruby 1.8.7。

我意识到有十几种方法可以完成反馈,例如后台作业等。但我真正想知道的是如何在每次循环迭代时将缓冲区转储并打印到屏幕(而不是控制台)。

4

1 回答 1

0

这个问题可能对你有一些帮助。它解释了如何使用旧版 Rails 客户端进行流式传输。

Ruby on Rails 3:通过 Rails 将数据流式传输到客户端

这是直接来自帖子的示例:

render :text => proc { |response, output|
  10_000_000.times do |i|
    output.write("This is line #{i}\n")
  end
}
于 2012-10-11T05:32:54.403 回答