Helpful Information
 
 
Category: Ruby & Ruby On Rails
Ruby CSV Parsing

Hello,
I have a Ruby controller that parses a POSTed CSV file and it works great... the problem is that I want to discard the first line. I am not sure how to do this... My code looks like this:



require 'csv'

class ImportController < ApplicationController

def import
currenttime = DateTime.now
@parsed_file=CSV::Reader.parse(params[:dump][:file])
n=0
@parsed_file.each do |row|
c=Import.new
c.prov_info_fac=row[0]
c.prov_info_bac=row[4]
c.prov_info_datatype=row[2]

c.prov_service_name=row[1]
c.prov_service_number=row[3]
c.prov_service_provider=row[5]

c.prov_charges_tot_access=row[7]
c.prov_charges_tot_airtime=row[8]
c.prov_charges_tot_kb=row[9]
c.prov_charges_tot_messaging=row[10]
c.prov_charges_tot_features=row[13]
c.prov_charges_tot_equipment=row[26]
c.prov_charges_tot_longdistance=row[27]
c.prov_charges_tot_roaming=row[31]
c.prov_charges_tot_misc=row[39]
c.prov_charges_tot_other=row[42]
c.prov_charges_tot_taxesfees=row[43]

c.prov_charges_messaging_sms=row[11]
c.prov_charges_messaging_mms=row[12]
c.prov_charges_feat_basicvoice=row[14]
c.prov_charges_feat_voicemail=row[15]
c.prov_charges_feat_wos=row[16]
c.prov_charges_feat_aod=row[17]
c.prov_charges_feat_intnl=row[18]
c.prov_charges_feat_mou=row[19]
c.prov_charges_feat_data=row[20]
c.prov_charges_feat_vidshare=row[21]
c.prov_charges_feat_wifi=row[22]
c.prov_charges_feat_messaging=row[23]
c.prov_charges_feat_otherfees=row[24]
c.prov_charges_feat_otherfeat=row[25]
c.prov_charges_ld_local=row[28]
c.prov_charges_ld_intnl=row[29]
c.prov_charges_ld_directory=row[30]
c.prov_charges_roam_airtime=row[32]
c.prov_charges_roam_kb=row[33]
c.prov_charges_roam_surcharges=row[34]
c.prov_charges_roam_ld=row[35]
c.prov_charges_roam_intnl=row[36]
c.prov_charges_roam_intnl_ld=row[37]
c.prov_charges_roam_taxes=row[38]
c.prov_charges_misc_voice=row[40]
c.prov_charges_misc_data=row[41]
c.prov_updated_date=currenttime

if c.save
n=n+1
GC.start if n%50==0
end
flash.now[:message] = 'CSV Import Successful'
end

end



Thanks for you help, it is appreciated!

- Jeff

require 'csv'

class ImportController < ApplicationController

def import
currenttime = DateTime.now
@parsed_file=CSV::Reader.parse(params[:dump][:file])
@parsed_file.shift
n=0
@parsed_file.each do |row|
c=Import.new
c.prov_info_fac=row[0]
c.prov_info_bac=row[4]
c.prov_info_datatype=row[2]

c.prov_service_name=row[1]
c.prov_service_number=row[3]
c.prov_service_provider=row[5]

c.prov_charges_tot_access=row[7]
c.prov_charges_tot_airtime=row[8]
c.prov_charges_tot_kb=row[9]
c.prov_charges_tot_messaging=row[10]
c.prov_charges_tot_features=row[13]
c.prov_charges_tot_equipment=row[26]
c.prov_charges_tot_longdistance=row[27]
c.prov_charges_tot_roaming=row[31]
c.prov_charges_tot_misc=row[39]
c.prov_charges_tot_other=row[42]
c.prov_charges_tot_taxesfees=row[43]

c.prov_charges_messaging_sms=row[11]
c.prov_charges_messaging_mms=row[12]
c.prov_charges_feat_basicvoice=row[14]
c.prov_charges_feat_voicemail=row[15]
c.prov_charges_feat_wos=row[16]
c.prov_charges_feat_aod=row[17]
c.prov_charges_feat_intnl=row[18]
c.prov_charges_feat_mou=row[19]
c.prov_charges_feat_data=row[20]
c.prov_charges_feat_vidshare=row[21]
c.prov_charges_feat_wifi=row[22]
c.prov_charges_feat_messaging=row[23]
c.prov_charges_feat_otherfees=row[24]
c.prov_charges_feat_otherfeat=row[25]
c.prov_charges_ld_local=row[28]
c.prov_charges_ld_intnl=row[29]
c.prov_charges_ld_directory=row[30]
c.prov_charges_roam_airtime=row[32]
c.prov_charges_roam_kb=row[33]
c.prov_charges_roam_surcharges=row[34]
c.prov_charges_roam_ld=row[35]
c.prov_charges_roam_intnl=row[36]
c.prov_charges_roam_intnl_ld=row[37]
c.prov_charges_roam_taxes=row[38]
c.prov_charges_misc_voice=row[40]
c.prov_charges_misc_data=row[41]
c.prov_updated_date=currenttime

if c.save
n=n+1
GC.start if n%50==0
end
flash.now[:message] = 'CSV Import Successful'
end

end

thank you, it works perfectly now!










privacy (GDPR)