私は Ruby on Rails を学んでおり、その過程で csv ファイル (シカゴの殺人事件の被害者に関する情報) からデータを取得し、データをデータベースに保存して、この情報をユーザーに表示するサンプル アプリを作成しています。
.csv ファイルの各行から日付を取得していますが、一見ランダムな日付がデータベースで「nil」と表示され、他の日付は正しくインポートされるという問題が発生しています。Name 属性と Age 属性も取得していますが、これらは問題なく正しくインポートされています。それは私が問題を抱えている日付だけです
私が使用しているモデルは次のとおりです。
class CreateVictims < ActiveRecord::Migration
def change
create_table :victims do |t|
t.string :name
t.integer :age
t.date :date
t.timestamps
end
end
end
データをインポートするために使用しているrakeタスクは次のとおりです。
require 'csv'
namespace :import_victims_csv do
task :create_victims => :environment do
csv_text = File.read('public/seed_data/2013all.csv')
csv = CSV.parse(csv_text, :headers => true)
csv.each do |row|
Victim.create!(date: row[1], age: row[5], name: row[8])
end
end
end
日付の約 50% は正しくインポートされると思いますが、残りの 50% は「nil」になります。ソース .csv ファイルには、すべての名前の日付がリストされています。
参考までに、インポート元の csv ファイルへのリンクを次に示します: CSV