db:seedでデータを取り込むときの話

目的

railsでDBへ初期データを登録する際、db:seed を使うのが良いらしい。 ただ、db/seeds.rb はRubyコードなので運用を考えると、CSVなりなんなりにしておくのが良いのだろうなと思うわけです。 つまり、人事からもらう部署データを読み込んで、、、なんてときにExcelでデリバリをしてすぐCSVに変換すればよいわけですから。

実施方法

以下のようなコードを書く。

require "csv"

# Department
CSV.foreach('db/csv/department.csv') do |row|
  Department.create(:id => row[0], :name => row[1])
end

あとはcsvファイルをdb/csv/ディレクトリに放り込めば良い、と。