【发布时间】:2016-08-14 08:34:54
【问题描述】:
我正在尝试从 CSV 文件导入数据,我不想保存该文件。我在这里发现了一个类似的问题:Ruby on Rails - Import Data from a CSV file
但是,当我尝试使用此解决方案时,出现错误。
我的表格如下:
Import a CSV file
<%= file_field_tag :file %>
<div class="actions form-group" id="button_text">
<p>
<%= button_tag(type: 'submit', class: "btn btn-primary button-submit") do %>
Submit
<% end %>
在新页面上这个表单的提交调用创建动作,创建动作然后调用行:
Product.import(params[:file])
我的模型中有以下导入方法:
def self.import(myfile)
require 'csv'
csv_text = File.read(myfile)
csv = CSV.parse(csv_text, :headers => true)
csv.each do |row|
end
end
其中 'myfile' 是 params[:file]。
我知道我还没有对数据做任何事情。我收到csv_text = File.read(myfile) 行的错误,即:没有这样的文件或目录@rb_sysopen - X.csv
在寻找解决方案时,我看到使用了 .path。如果我将此行更改为 csv_text = File.read(myfile.path) 我会收到错误:未定义的方法 `path' for "X.csv":String
有人可以帮忙吗?我觉得我必须非常接近解决方案,但我只是在这两个错误之间不停地转来转去。是否可以在不先保存的情况下从 csv 中获取数据?
感谢您的宝贵时间
【问题讨论】:
标签: ruby-on-rails csv import