0

我正在尝试获取一个填充数组并将其内容清空到指定的表字段中。

我有一个 rake 文件,它通过 CSV 文件导入新行,该文件需要从我已经填充的数组中提取值并将它们添加到incident_id字段中。

例如:

@id_array = [97, 98, 99]

所以,如果我要导入三个新行,第一行需要得到incident_id97,第二行需要得到incident_id98,依此类推,直到数组为空。

这是我的 rake 文件的代码:

require 'csv'

namespace :import_timesheets_csv do

  task :create_timesheets => :environment do
    puts "Import Timesheets"

    csv_text = File.read('c:/rails/thumb/costrecovery_csv/lib/csv_import/timesheets.csv')
    csv = CSV.parse(csv_text, :headers => true)
    csv.each do |row|
      row = row.to_hash.with_indifferent_access
      Timesheet.create!(row.to_hash.symbolize_keys)
      timesheet = Timesheet.last
      timesheet.incident_id << @id_array
      timesheet.save
    end
  end
end
4

1 回答 1

2
if csv.size == @id_array.size
  csv.each_with_index do |row,index|
    row = row.to_hash.with_indifferent_access
    Timesheet.create!(row.to_hash.symbolize_keys)
    timesheet = Timesheet.last
    timesheet.incident_id = @id_array[index]
    timesheet.save
  end
else
   #Handel error arrays are not equal in size
end
于 2012-09-27T17:45:37.830 回答