忽略csv解析Rails的第一行

Jac*_*ack 13 csv ruby-on-rails

我正在使用本教程中的代码来解析CSV文件并将内容添加到数据库表中.我如何忽略CSV文件的第一行?控制器代码如下:

def csv_import 
  @parsed_file=CSV::Reader.parse(params[:dump][:file])
  n = 0
  @parsed_file.each  do |row|
    s = Student.new
    s.name = row[0]
    s.cid = row[1]
    s.year_id = find_year_id_from_year_title(row[2])
    if s.save
      n = n+1
      GC.start if n%50==0
    end
    flash.now[:message] = "CSV Import Successful, #{n} new students added to the database."
  end
  redirect_to(students_url)
end
Run Code Online (Sandbox Code Playgroud)

afx*_*jzs 43

当我在搜索如何跳过CSV/FasterCSV库的第一行时,这个问题不断出现,所以这里的解决方案你最终到了这里.

解决方案是...... CSV.foreach("path/to/file.csv",{:headers=>:first_row}) do |row|

HTH.

  • 您还可以将散列`{:headers => true}`作为第二个参数传递.这也有效. (5认同)

Max*_*xem 14

@parsed_file.each_with_index  do |row, i|
  next if i == 0
  ....
Run Code Online (Sandbox Code Playgroud)