RubyでCSVを扱う時にちょっと調べたのでまとめておきます。
data.csv
time,text,user
10:00,Hello,tarou
20:10,GOODNIGHT,miki
03:00,SINTYOKUDAME,se
csv_table.rb
require 'csv'
csv = CSV.table('data.csv')
time = csv[:time] #ヘッダーを指定する場合
puts time.class # => array
puts time # => 10:00
# 20:00
# 03:00
one = csv[1] #行を指定する場合
puts one.class # => CSV::Row
puts one # => 20:10,GOODNIGHT,miki
puts one[:time] # => 20:10
CSVライブラリで.tableした際、ヘッダーを指定した場合は配列として扱うことが出来る。一方、行を指定した場合はCSV::Rowとして扱われる。なので、行指定の場合は、そこからさらにヘッダーを指定したりも出来る。