在Rails中上传CSV文件并处理记录以在页面上显示,而不保存文件



我正在学习Rails,并试图创建一个文件上传页面来处理CSV数据,而不使用我的数据库或模型。我也尽量避免使用任何宝石,如回形针或载波。

我已经取得了一些进展,但由于某种原因,我的代码无法工作。我没有得到显示在import.html.erb page. 上的CSV文件中的记录

当我点击页面上的上传按钮: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>
CSV.foreach(myfile.path) do |row|
  rowarray << row
  @rowarraydisp = rowarray
end

应该写:

@rowarraydisp = CSV.read(myfile.path)

根据CSV.read:文件

用于将CSV文件拖入数组。

对于ERB的两个不同示例,import.html.erb文件被使用了两次。实际的文件和实际的代码是什么?

<% @rowarraydisp.each do |row| %>
  <%= row %>
<% end %>

将尝试将CSV文件中的子数组row发送到浏览器,但是,如果不知道ERB或数据是什么,很难说除了一行数据的内容之外的输出是什么。

相关内容

  • 没有找到相关文章

最新更新