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 に答える