Convert hash keys to lowercase — Ruby Beginner

后端 未结 9 2182
终归单人心
终归单人心 2020-12-17 19:51

My table field names are lowercase and the field names I get from CSV files are camelcase. Is there anyway I can convert the keys of an array of hashes to lowercase?

9条回答
  •  忘掉有多难
    2020-12-17 20:47

    Ruby 1.9 provides quite a nice way to achieve this, using each_with_object to avoiding initialising a temporary variable.

    CSV.foreach(file, :headers => true) do |row|
      new_hash = row.each_with_object({}) do |(k, v), h|
        h[k.downcase] = v
      end
    
      Users.create!(new_hash)
    end
    

提交回复
热议问题