我正在使用Ruby on Rails实现,有两个视图。在我的第一个视图中,我读取文件并显示前几行(这个部分没有问题),然后在我的第二个视图(在控制器的方法中)中,我写入了一个临时文件。仅仅是相同的操作。我想再次显示这个临时文件的内容。但是这不起作用,我总是收到错误消息:
在这个视图中,我只想展示它,我只有:
有人看到我做错了什么吗?提前感谢!
IOError in Project importerController#result
closed stream
这是我的控制器中的代码,紧随第一个视图之后:
tmpfile = Tempfile.new("tempfile")
if tmpfile
tmpfile.write(@samples)
tmpfile.close
tmpfilename = File.basename(tmpfile.path)
tmpfilenametest = tmpfilename
if !$tmpfiles
$tmpfiles = Hash.new
end
$tmpfiles[tmpfilename] = tmpfile
else
flash[:error] = "Cannot save import file."
return
end
@path = tmpfile.path
session[:importer_tmpfile] = tmpfilename
end
在我的下一个视图中,我想通过以下方式读取此文件:
tmpfilename = session[:importer_tmpfile]
i = 0
sample_count = 5
if tmpfilename
tmpfile = $tmpfiles[tmpfilename]
if tmpfile == nil
flash[:error] = "Tijdelijk bestand bestaat niet!"
return
end
end
fields_map = params[:fields_map]
attrs_map = fields_map.invert
@parsed_tempfile=CSV::Reader.parse(tmpfile)
@sampletemp = []
@parsed_tempfile.each do |row|
@sampletemp[i] = row
i = i+1
end
在这个视图中,我只想展示它,我只有:
<ul>
<% @sampletemp.each do |x| %>
<li>
<%= x %>
</li>
<% end %>
</ul>
有人看到我做错了什么吗?提前感谢!