我正在嘗試決議遠程托管的 csv 檔案。我使用 rails 6 和活動存盤。該檔案存盤在 ImportJob 模型中。它的 url 可以通過這種方式訪問??:
ImportJob.last.csv_file.url
該檔案確實存在并且可以下載:http ://res.cloudinary.com/dockcyr0z/raw/upload/rghn3zi2190nmc28qwbtr24apqxe.csv
但是,當嘗試決議它時
CSV.foreach(url, headers: true, header_converters: :symbol, col_sep: ';') do |row|
puts row
end
我越來越Errno::ENOENT: No such file or directory @ rb_sysopen - http://res.cloudinary.com/dockcyr0z/raw/upload/rghn3zi2190nmc28qwbtr24apqxe.csv
如果我先嘗試打開檔案,同樣的事情:open(url)
為什么我會收到此錯誤?如何決議這個遠程 csv 檔案?
uj5u.com熱心網友回復:
打開url并URI.parse更改CSV.foreach為CSV.parse
CSV.parse(URI.parse(url).read, headers: true, header_converters: :symbol, col_sep: ';') do |row|
puts row
end
# output
{
:first_name => "Souper",
:last_name => "Man",
:email => "dageismar [email protected]",
:role => "CEO",
:tags => "sales,marketing",
:avatar_url => "http://res.cloudinary.com/dockcyr0z/image/upload/x3f65o5mepbdhi4fwvww99gjqr7p"
}
{
:first_name => "Gentil",
:last_name => "Keum",
:email => "dageismar [email protected]",
:role => "CEO",
:tags => "sales,marketing",
:avatar_url => "http://res.cloudinary.com/dockcyr0z/image/upload/x3f65o5mepbdhi4fwvww99gjqr7p"
}
更新:
或者正如斯特凡建議的那樣,URI.open(url)而不是URI.parse(url).read
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/493376.html
標籤:红宝石 CSV rails-activestorage
