加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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”
但是不接受:“ast_a”
我尝试过Convert hash keys to lowercase — Ruby Beginner的代码无济于事.我的问题是如何在导入期间使.csv导入标题行不区分大小写?

解决方法

您可以简单地提供一个header_converter对象,该对象响应调用方法并接收头字符串作为参数:

converter = lambda { |header| header.downcase }
CSV.foreach([...],header_converters: converter,[...]) do |row|

所以现在所有已解析的CSV标题都是向下的.您只需将其与本地变量标题的下行版本进行比较即可

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读