Ruby CSV #fetch case sensitivness

时间:2015-08-17 07:47:28

标签: ruby-on-rails ruby csv

我有简单的csv文件,其中包含以下标题:'NYC'。 我使用CSV获取方法: http://ruby-doc.org/stdlib-2.0.0/libdoc/csv/rdoc/CSV/Row.html#method-i-fetch

问题是,当我使用'NYC'获取时,它可以正常工作,但当我使用'nyc'获取时,它会返回:

KeyError: key not found: nyc

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

有一个选项:header_converters。您可以将其设置为:

  • :downcase在标题字符串上调用downcase()。
  • :symbol标题字符串是向下的,空格用下划线替换,非字字符被删除,最后调用to_sym()。

示例:

require 'CSV'

CSV.parse("NYC\nfoo", headers: true, header_converters: :symbol) do |row|
  row[:nyc] #=> "foo"
end