1

次のような属性でいっぱいの .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 レコードが作成されているため、実際に何かをインポートしていることはわかっていますが、実際には属性を正しく更新していません。私は非常に明白な何かを見逃していると確信していますが、それを見つけることができません!

4

1 に答える 1