テーブル内のレコードに CSV の行を追加しようとしていますが、実際には何も表示されないという事実を除いて、すべてが正常に機能しているようです。
これが私のRakeタスクです:
namespace :csv do
desc "Import CSV Data"
task :c_up => :environment do
require 'csv'
csv_file_path = 'db/main.csv'
CSV.foreach(csv_file_path, :headers => true) do |row|
row = Entry.create!({
:one => row[0],
:two => row[1],
:three => row[2],
:four => row[3],
:five =>row[4],
:six => row[5],
:seven => row[6],
:eight => row[7],
:nine => row[8],
:ten => row[9]
})
row.save
puts "Entry added!"
end
end
end
私の CSV のヘッダーは、属性に一致するように名前が付けられています。
タスクを実行すると、エラーは表示されず、「エントリが追加されました!」というメッセージがすべて表示されます。コンソールに表示されます。row =
andなしで試してrow.save
みましたが、それらなしで多くの例を見てきましたが、役に立ちません。
レーキが終了した後、レコードはまったくありません。私が間違っていることは明らかですか?これは、私が見たほとんどの例に従っているようです。
編集 すべての回答とコメントに感謝します! 明らかに、これには構文に至るまで欠陥があります。私はあなたの提案を試して、後でこれを更新します。再度、感謝します!
編集2 皆さんが指摘したのは構文の問題であることが判明したので、皆さんに+1をありがとう! まだ機能していないとコメントした理由は、@jvnillのコメントなしでは理解できなかった無関係の問題でした。