2011-09-04 37 views
1

我導入具有耙分貝一些數據:種子分貝:種子錯誤在一個記錄

Territory.delete_all 
open("db/territories.txt") do |territories| 
    territories.read.each_line do |territory| 
    id, name, sales_rep_id, handed_out = territory.chomp.split("\t") 
    Territory.create!(:id => id, :name => name, :sales_rep_id => sales_red_id, :handed_out => handed_out) 
    end 
end 

這裏是我的數據

我的數據

9 Territory 1 2009-08-01 6 2010-07-01 
10 Territory 1 2009-08-01 6 2010-07-01 
11 Territory 3 2009-09-01 5 

一切都運行得很好,但是第一個記錄。導入後它有ID = 0而不是9.從secord記錄開始,ID是正確的10,11,12等。

爲什麼?

感謝 托馬斯

回答

0

什麼數據庫?你無法強迫:你在那裏做的方式。我的猜測是,代碼嘗試,將序列推進到那一點,以便剩下的記錄恰好匹配。如果你改變你的txt文件的順序,它是否仍然有效?

無論如何...你可以做到這一點...取代創造!與此行:

territory = Territory.new do |t| 
    t.id = id 
    t.name = name 
    t.sales_rep_id = sales_rep_id 
    t.handed_out = handed_out 
end 
t.save! 
+0

我正在使用SQLite3。我試圖用你的代碼替換我的代碼,它說:未定義的局部變量或方法't'爲main:Object。不知道爲什麼... – Thomas