2012-09-18 74 views
0

我想我的CSV數據上傳到我的sqlite的表,這是我的代碼:上傳CSV文件,SQLite的

require 'csv' 

CSV.open('history.csv', 'r') do |row| 
    HistoryYear.create(:year => row[1], :first => row[2], :second => row[3], :third => row[4], :regular_season_champ => row[5]) 
end 

我收到一條錯誤信息,NoMethodError: undefined method '[]' for #<CSV:0x3c1fe18>。我是Rails和一般編程的新手,似乎無法找到答案。

回答

0

您需要使用CSV.foreach(文件...),而不是

你可以這樣做:

require 'csv' 

CSV.foreach('history.csv') do |row| 
    HistoryYear.create(:year => row[1], :first => row[2], :second => row[3], :third => row[4], :regular_season_champ => row[5]) 
end 

退房http://www.ruby-doc.org/stdlib-1.9.3/libdoc/csv/rdoc/CSV.html

+0

非常感謝你,完美的工作。 – sethb78

+0

太好了。請將我的答案標記爲正確的答案。 ;-) – agronemann

0

另外不要忘記,陣列(這種情況下的行)是0索引的,即行的第一個元素是行[0]。