この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
RAILSでCSV形式のデータをDBにインポートするとき、 Fixturesの中に定義されているcreate_fixturesを使ってみたいと思います。
結構便利です。まず、RAILS_ROOT/db/initial_data/の中にCSVファイルを設置します。
この時、ファイル名は、「(データを入れたいテーブル名).csv」としてください。
今回は、「jobs」テーブルにデータを入れ込んでみたいと思います。
「jobs」テーブルは、id、name、created_atというカラムを持っています。
なのでCSVデータを以下のような感じになります。
RAILS_ROOT/db/initial_data/jobs.csv
####################################
id,name,created_at
1,会社員,<%= Time.now.strftime(“%Y-%m-%d”) %>
2,公務員,<%= Time.now.strftime(“%Y-%m-%d”) %>
3,無職,<%= Time.now.strftime(“%Y-%m-%d”) %>
####################################
このファイルは、Rubyのコードも記述できます。
あとは、コンソールを開いてデータをインポートします。
ruby script/console
Fixtures.create_fixtures RAILS_ROOT + ‘/db/initial_data’, ‘jobs’
以上