ruby-on-rails – 将Rails中的CSV文件和进程记录上传到页面上,不
发布时间:2020-12-16 19:35:33 所属栏目:百科 来源:网络整理
导读:我正在学习Rails,并尝试创建一个文件上传页面来处理CSV数据,而无需使用我的数据库或模型.我也试图避免使用诸如Paperclip或Carrier-wave之类的任何宝石. 我已经取得了一些进展,但由于某种原因,我的代码不起作用.我没有收到显示在import.html.erb页面上的CSV文
我正在学习Rails,并尝试创建一个文件上传页面来处理CSV数据,而无需使用我的数据库或模型.我也试图避免使用诸如Paperclip或Carrier-wave之类的任何宝石.
我已经取得了一些进展,但由于某种原因,我的代码不起作用.我没有收到显示在import.html.erb页面上的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的文档:
您的import.html.erb文件使用两次,您的ERB的两个不同示例.实际文件是什么,实际代码? <% @rowarraydisp.each do |row| %> <%= row %> <% end %> 将尝试将一个子数组行从CSV文件发送到浏览器,但是,不知道ERB或数据是什么,很难说输出将不是一行数据的内容. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |