write csv with header ruby

require 'csv'

data = [ { name: 'John', age: 25, city: 'New York' }, { name: 'Emma', age: 30, city: 'San Francisco' }, { name: 'Michael', age: 35, city: 'Chicago' } ]

header = data.first.keys csv_string = CSV.generate do |csv| csv << header data.each do |row| csv << row.values end end

File.write('output.csv', csv_string)