次のような属性でいっぱいの .txt ファイルがあります。
"12345", "1", "Kent"
"67890", "1", "New Castle"
County モデルを更新するためにこれが必要なので、次の rake タスクがあります。
namespace :data do
desc "import data from files to database"
task :import => :environment do
file = File.open(File.join(Rails.root, "lib", "tasks", "counties.txt"), "r")
file.each do |line|
attrs = line.split(", ")
c = County.find_or_initialize_by_number(attrs[0])
c.state_id = attrs[1]
c.name = attrs[2]
c.save!
end
end
end
すべてがうまくいっているように見えますが、正しくインポートされていることを確認するためにコンソールをチェックインすると、次のようになります。
#<County id: 2, name: nil, number: 0, state_id: 0, created_at: "2013-08-04 17:44:11", updated_at: "2013-08-04 17:44:11">
正確に正しい数の County レコードが作成されているため、実際に何かをインポートしていることはわかっていますが、実際には属性を正しく更新していません。私は非常に明白な何かを見逃していると確信していますが、それを見つけることができません!