【问题标题】:in `block in <top (required)>': undefined method `match' for nil:NilClass (NoMethodError) Did you mean? catch. Ruby and CSVin `block in <top (required)>': undefined method `match' for nil:NilClass (NoMethodError) 你的意思是?抓住。红宝石和 CSV
【发布时间】:2016-06-23 12:10:15
【问题描述】:

尝试使用 CSV 将链接转换为图像。运行我的代码时出现错误 在block in &lt;top (required)&gt;': undefined methodmatch' 中为 nil:NilClass (NoMethodError) 你的意思?赶上

代码--

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

【问题讨论】:

    标签: ruby csv


    【解决方案1】:
    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
    

    【讨论】:

      猜你喜欢
      • 2012-08-08
      • 2015-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-18
      • 2015-01-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多