我正在学习 Rails,并试图创建一个文件上传页面来处理 CSV 数据,而不使用我的数据库或模型。我还试图避免使用任何宝石,例如回形针或载波波。
我取得了一些进展,但由于某种原因,我的代码无法正常工作。我没有得到 CSV 文件中显示的记录import.html.erb page.
当我单击页面上的上传按钮:localhost:3000/upload 时,它会在提交后正确地将我重定向到预期的页面,但文件中的行不会出现。
有谁知道为什么页面不显示 CSV 文件中的记录?
上传文件视图(index.html.erb):
<%= form_tag({:action => :import}, multipart: true) do %>
<%= file_field_tag :file %>
<%= submit_tag( "Import" ) %>
<% end %>
控制器(upload_controller.rb):
class UploadController < ApplicationController
def index
end
def import
rowarray = Array.new
myfile = params[:file]
CSV.foreach(myfile.path) do |row|
rowarray << row
@rowarraydisp = rowarray
end
end
end
结果视图(import.html.erb):
<% @rowarraydisp.each do |row| %>
<%= row %>
<% end %>
<h1>File has been uploaded. Check</h1>