2016-06-23 5 views
-2

リンクをCSVで画像に変換しようとしています。私のコードを実行するとエラーが発生する block in <top (required)>': undefined methodに 'for nil:NilClass(NoMethodError) 意味がありますか?感謝:未定義のメソッド `match 'はnil:NilClass(NoMethodError)意味しましたか?キャッチ。 RubyとCSV

require 'open-uri' 
require 'tempfile' 
require 'uri' 
require 'csv' 

DOWNLOAD_DIR = "#{Dir.pwd}/BD/" 
CSV_FILE = "#{Dir.pwd}/konvertera.csv" 

def downloadFile(id, url, format) 
    begin 
    open("#{DOWNLOAD_DIR}#{id}.#{format}", "wb+") do |file| 
    file << open(url).read 
    puts "Successfully downloaded #{url} to #{DOWNLOAD_DIR}#{id}.#{format}" 
end 
rescue 
    puts "404 not found #{url}" 
end 
end 


CSV.foreach(CSV_FILE, headers: true, col_sep: ";") do |row| 
id = row[0] 
format = row[1].match(/BD\.(.+)$/)&.captures.first 
url = row[1].gsub ".pdf", "" 
downloadFile(id, url, format) 
end 

答えて

0
CSV.foreach(CSV_FILE, headers: true, col_sep: ";") do |row| 
    # ⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓ 
    next unless row[0] && row[1] 
    # ⇑⇑⇑⇑⇑⇑⇑⇑⇑⇑⇑⇑⇑⇑⇑⇑⇑⇑⇑⇑⇑⇑⇑⇑⇑⇑ 
    id = row[0] 
    format = row[1].match(/BD\.(.+)$/)&.captures.first 
    url = row[1].gsub ".pdf", "" 
    downloadFile(id, url, format) 
end 
+0

-

コードをキャッチ –

関連する問題