小编Eli*_*Eli的帖子

Rails导入CSV错误:UTF-8中的字节序列无效

invalid byte sequence in UTF-8尝试在我的Rails应用程序中导入CSV文件时出现错误.一切都运行良好,直到我添加了一个gsub方法来比较其中一个CSV列到我的数据库中的字段.

当我导入CSV文件时,我想检查每行的地址是否包含在特定客户端的不同地址的数组中.我有一个客户端模型,alt_addresses其中包含一些属性,其中包含客户端地址的几种不同格式.

然后我有一个引用模型(如果你熟悉本地搜索引擎优化你会知道这个术语).引文模型没有地址字段,但它有一个nap_correct?字段(NAP代表"名称","地址","电话号码").如果CSV行的名称,地址和电话号码与我在该客户端的数据库中的名称,地址和电话号码相同,则nap_correct?该引用的字段将设置为"正确".

以下是import我的引文模型中的方法:

def self.import(file, client_id)
  @client = Client.find(client_id)
  CSV.foreach(file.path, headers: true) do |row|
    @row = row.to_hash
    @citation = Citation.new
    if @row["Address"]
      if @client.alt_addresses.include?(@row["Address"].to_s.downcase.gsub(/\W+/, '')) && self.phone == @row["Phone Number"].gsub(/[^0-9]/, '')
        @citation.nap_correct = true
      end
    end
    @citation.name = @row["Domain"]
    @citation.listing_url = @row["Citation Link"]
    @citation.save
  end
end
Run Code Online (Sandbox Code Playgroud)

然后,这是alt_addresses我的客户端模型中的属性:

def alt_addresses
  address = self.address.downcase.gsub(/\W+/, '')
  address_with_zip = (self.address + self.zip_code).downcase.gsub(/\W+/, '')
  return [address, address_with_zip] …
Run Code Online (Sandbox Code Playgroud)

ruby csv ruby-on-rails utf-8 ruby-on-rails-4

5
推荐指数
1
解决办法
7743
查看次数

Modulo运算符Ruby的问题:为什么我得到"1..100:Range"的"未定义方法`%'"?

出于某种原因,我在undefined method '%' for 1..100:Range运行以下代码时遇到错误:

[1..100].each do |x|
  if x % 3 == 0 && x % 5 == 0
    puts "CracklePop"
  elsif x % 3 == 0
    puts "Crackle"
  elsif x % 5 == 0
    puts "Pop"
  else
    puts x
  end
end
Run Code Online (Sandbox Code Playgroud)

知道发生了什么事吗?任何帮助深表感谢.

ruby modulo

1
推荐指数
1
解决办法
1408
查看次数

标签 统计

ruby ×2

csv ×1

modulo ×1

ruby-on-rails ×1

ruby-on-rails-4 ×1

utf-8 ×1