":rails-6ren">
gpt4 book ai didi

ruby - 没有这样的文件或目录@rb_sysopen

转载 作者:太空宇宙 更新时间:2023-11-03 16:50:41 29 4
gpt4 key购买 nike

当我运行这段代码时,我使用的是 Ruby 2.1.1:

<CSV.foreach("public/data/original/example_data.csv",headers: true, converters:              :numeric) do |info|

我得到一个错误:

No such file or directory @ rb_sysopen

如果我将 example_data.csv 放在同一个目录中,它会起作用,如下所示,但我的老板说不能这样他想要所有的 *.csv不同目录中的文件:

<CSV.foreach("example_data.csv",headers: true, converters: :numeric) do |info|

最佳答案

我不得不使用绕过文件实用程序的解决方法。使用 thoughtbot/paperclip 生成了一个名为 csvcontroller 的目录。我将 csv 文件放在该目录文件夹中。

class Uploader < ActiveRecord::Base
attr_accessible :purchase_name, :item_description, :item_price, :purchase_count,
:merchant_address, :merchant_name, :csvdata

has_attached_file :csvdata, :url => "/csvcontroller/:basename.:extension",

:path => ":rails_root/csvcontroller/:basename.:extension"

#:default_url => "/controllers/original/example_data.csv"

validates_attachment_content_type :csvdata, :content_type => ["text/csv"]

end

然后我将我的解析器放在那个目录中以避免使用 FileUtils

require 'csv'

@total_cost = 0

#errors out FileUtils.move '/public/data/original/example_data.csv', '/controllers'

#errors out require File.expand_path('../app/public/data/original/', __FILE__)

# errors outCSV.foreach("any_path_name_outside_the_same_directory/example_data.csv",
#headers: true, converters: :numeric) do |info|

CSV.foreach("example_data.csv", headers: true, converters: :numeric) do |info|

a =(info["item price"]).to_f

b = (info["purchase count"]).to_i

@total_cost += a * b
@store = []
customer = []
customer << info["purchaser name"]
@store << info["item description"]
@store << (info["item price"]).to_f
@store << (info["purchase count"]).to_i
@store << info["merchant address"]
@store << info["merchant name"]
puts @customer
puts @store
puts @total_cost
end

它看起来很丑,但事实就是如此。我无法让 FileUtils::类正常工作。这是 2.1.1 的 Ruby 错误

关于ruby - 没有这样的文件或目录@rb_sysopen,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22818611/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com