首页 > 解决方案 > 如何在 Ruby 中删除 \r\n?

问题描述

错误:nil:NilClass 的未定义方法“删除”

                                "updated_at" => "",
                                 "fias_ao_guid" => "\r\n",
                                    "file_path" => nil

如何删除“\r\n”?

             splitted_records = []
      id = 3141634
      string = 0
      row = 0
      h = {}
      record_candidate = {}
      open('/home/dayanov-sa/PGadmin/finish.csv') do |csv|
         csv.each_line do |line|
            index = 0
            row += 1
               line.split(";").each do |key_filed|
                record_candidate["#{key_filed.delete("\r\n")}"] = nil
               end if row.eql?(1)
            next if row.eql?(1)
            copy_object = Marshal.load(Marshal.dump(line))
            values = line.split(";")
            record_candidate.keys.each do |keys|
               index += 1
               record_candidate[keys] = values[index].delete("\r\n")
               end
            id = id + 1
            puts string
            splitted_records << record_candidate

我正在尝试从哈希中删除 \r\n

标签: ruby-on-railsruby

解决方案


这是因为某些哈希键具有nil值,例如 ("file_path" => nil)

您需要绕过这些nil

您的代码将如下所示:

record_candidate.keys.each do |keys|
  index += 1
  if !values[index].nil?
     record_candidate[keys] = values[index].delete("\r\n")
  end
end

推荐阅读