CSV ファイルからレコードをインポートしてデータベースに保存する単純な rake タスクがあります。
require 'csv'
namespace :import do
task :items => :environment do
CSV.foreach(Rails.root.to_s + '/public/data/items.csv', :headers => true) do |row|
@item_id = row[1]
if item_id
i = Item.find_or_create_by_item_id(@item_id)
i.update_attributes(
:item_id => @item_id,
:category => row[2],
:price => row[3],
)
i.save
end
end
end
end
実行すると、次のエラーが表示されます。
rake aborted!
undefined method `save' for []:ActiveRecord::Relation
これは正常に機能しており、同じモデルで同じ方法で動的ファインダーを使用する他のレーキタスクがあり、正常に機能します。何が変わったのか、何が原因なのかわかりません。どんなアイデアでも大歓迎です。