ruby-on-rails – 在Ruby中将CSV标头转换为不区分大小写
发布时间:2020-12-17 03:25:24 所属栏目:百科 来源:网络整理
导读:我有一个 ruby导入到DB进程,它根据名为headers的数组检查标题.就目前而言,这些标题必须与它们在数组中出现的标题完全相同.不管他们是大写还是小写,我都希望他们被接受. CSV.foreach(FILE,encoding:'iso-8859-1:utf-8',headers: true,skip_blanks: true) do |
我有一个
ruby导入到DB进程,它根据名为headers的数组检查标题.就目前而言,这些标题必须与它们在数组中出现的标题完全相同.不管他们是大写还是小写,我都希望他们被接受.
CSV.foreach(FILE,encoding:'iso-8859-1:utf-8',headers: true,skip_blanks: true) do |row| # check the header row,make sure all are acceptable if count == 0 row.headers.each do |header| if (!headers.include? header) and !header.nil? and header != "" log.error "#{header} is not a valid header" exit end end end 目前接受:“Ast_A” 解决方法
您可以简单地提供一个header_converter对象,该对象响应调用方法并接收头字符串作为参数:
converter = lambda { |header| header.downcase } CSV.foreach([...],header_converters: converter,[...]) do |row| 所以现在所有已解析的CSV标题都是向下的.您只需将其与本地变量标题的下行版本进行比较即可 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |