How to add/read rows from Ruby CSV instance -


though seems far more common people use ruby csv class methods, have occasion use csv instance, seams uncooperative.

what i'd create csv instance, add rows it, able retrieve rows , write them file. sadly, following code doesn't work @ all.

require 'csv'  csv = csv.new('', headers: ['name', 'age']) csv.read # apparently need headers read in.  csv.add_row(['john', '22']) csv.add_row(['jane', '24']) csv.read  csv.to_a csv.to_s 

all want able retrieve information put csv , write file, can't seem :/

what doing wrong?

you need use csv#rewind

here sample:

require 'csv'  csv = csv.new(file.new("data1.csv", "r+"), headers: ['name', 'age'], write_headers: true)  csv.add_row(['john', '22']) csv.add_row(['jane', '24'])  p csv.to_a  # empty array  csv.rewind  p csv.to_a  # array 3 csv::row objects (including header) 

Comments