我正在尝试使用已填充的数组并将其内容清空到指定的表字段中。
我有一个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
答案 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