繁体   English   中英

CSV-Mapper没有这样的文件或目录

[英]CSV-Mapper No such file or directory

我正在使用csv-mapper gem导入一个csv文件。 当我在脚本/控制台的README( http://github.com/pillowfactory/csv-mapper )中使用示例代码时,它的效果很好。 但是,当我创建一个Web表单并使用它上传一个csv文件时,出现错误“没有这样的文件或目录-test.csv

这些是参数:参数:

{“ dump” => {“ file” =>#},“ commit” =>“ Submit”,“ authenticity_token” =>“ Hb + XDPUGyZQqB5H2vZnhlfXpEE9bAE16kAjTT34uQ3U =”}

这是我在控制器中获得的代码:

def csv_import
  results = CsvMapper.import(params[:dump][:file].original_filename) do
    map_to Sale # Map to the Sale ActiveRecord class instead of the default Struct.
    after_row lambda{|row, sale| sale.save }  # Call this lambda and save each record after it's parsed.

    start_at_row 1
    [start_date, country]
  end
  flash[:notice] = "Successfully uploaded file"
end

这有点晚了,但您还应该注意,当CsvMapper#import传递:type =>:io选项时,它将接受任何IO。

results = CsvMapper.import(params[:dump][:file], :type => :io) do ... end

这样,您就可以跳过导入之前保存文件的步骤。

由于params[:dump][:file].original_filename仅返回上载CSV的文件名,因此会出现此错误。 上传的CSV应该首先保存到文件系统中。 将保存的CSV文件的路径传递到CsvMapper#import方法,然后它应该可以工作。

有关如何保存上传的文件,请参见此处

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM