0

我正在尝试将我的 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 和一般编程的新手,似乎找不到答案。

4

2 回答 2

0

也不要忘记数组(在这种情况下为行)索引为 0,即行的第一个元素是 row[0]。

于 2012-09-19T03:18:50.143 回答
0

您需要改用 CSV.foreach(file...)

您可以执行以下操作:

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

于 2012-09-18T22:51:01.973 回答