0
上午尝试导入选项卡式文件并使用Ruby CSV。麻烦的是添加到数据库的值返回零,我不明白为什么。模型填充,但CSV导入后的值为零
这里是我的方法:
require 'csv'
desc "Import GB.full from csv file"
task :import => [:environment] do
file = "codes.csv"
CSV.foreach(file, :col_sep => "\t") do |row|
Place.create {
country_code = row[0],
postal_code = row[1],
place_name = row[2],
admin_name_1 = row[3],
admin_code_1 = row[4],
admin_name_2 = row[5],
admin_code_2 = row[6],
admin_name_3 = row[7],
admin_code_3 = row[8],
latitude = row[9],
longitude = row[10],
accuracy = row[11]
}
puts row[0]
end
end
这里是我的模型条目从Rails的控制台一个片段:
irb(main):030:0> Place.all
Place Load (3.8ms) SELECT "places".* FROM "places"
=> #<ActiveRecord::Relation [#<Place id: 1, country_code: nil, postal_code: nil, place_name: nil, admin_name_1: nil, admin_code_1: nil, admin_name_2: nil, admin_code_2: nil, admin_name_3: nil, admin_code_3: nil, latitude: nil, longitude: nil, accuracy: nil, created_at: "2016-01-23 18:10:40", updated_at: "2016-01-23 18:10:40">, #<Place id: 2, country_code: nil, postal_code: nil, place_name: nil, admin_name_1: nil, admin_code_1: nil, admin_name_2: nil, admin_code_2: nil, admin_name_3: nil, admin_code_3: nil, latitude: nil, longitude: nil, accuracy: nil, created_at: "2016-01-23 18:10:40", updated_at: "2016-01-23 18:10:40">, #<Place id: 3, country_code: nil, postal_code: nil, place_name: nil, admin_name_1: nil, admin_code_1: nil, admin_name_2: nil, admin_code_2: nil, admin_name_3: nil, admin_code_3: nil, latitude: nil, longitude: nil, accuracy: nil, created_at: "2016-01-23 18:10:40", updated_at: "2016-01-23 18:10:40">, #<Place id: 4, country_code: nil, postal_code: nil, place_name: nil, admin_name_1: nil, admin_code_1: nil, admin_name_2: nil, admin_code_2: nil, admin_name_3: nil, admin_code_3: nil, latitude: nil, longitude: nil, accuracy: nil, created_at: "2016-01-23 18:10:40", updated_at: "2016-01-23 18:10:40">
提前感谢!在这条线
Place.create {...}
谢谢我将深入研究这些文档。 – Stoob