我有一个充满属性的 .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">
我知道它实际上是在导入一些东西,因为它创建了正确数量的县记录,但实际上并没有正确更新属性。我确定我错过了一些非常明显的东西,但我找不到它!