将数组内容清空到表字段中

时间:2012-09-27 17:40:39

标签: ruby-on-rails ruby

我正在尝试使用已填充的数组并将其内容清空到指定的表字段中。

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

例如:

@id_array = [97, 98, 99]

所以,如果我要导入三个新行,第一行需要获得97的incident_id,第二行需要获得98的incident_id,依此类推,直到数组是空的。

以下是我的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

1 个答案:

答案 0 :(得分: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