##0.概略
1.テーブルを作る
2.登録用のデータを作る
3.登録処理をしてくれるファイルを作る&登録するデータを適切な場所に置く
4.データの登録
5.登録されたデータの確認
##1.テーブルを作る
ここは詳細は省略。Railsチュートリアルの6.2などが参考になる。概略のみ書いておくと、3ステップ必要です。
- migration fileを作る
- migration fileを修正して、カラムを作る
- migrateする
ちなみにテーブル数が多いと地味に大変なのですが、ここら辺はプロの方はどのようにされているのかしら。
##2.登録用のデータを作る
csvファイルで作ります。
column1,column2
1,2
1,3
1,4
なお、Date型のカラムの場合、CSVをどう作るのか?という疑問があるかと思います。
「2015,1,1」と入れると、カラムがずれてしまうと思いますよね。
日付の場合は'2015-1-1'のように入れて下さい。
(全体をクオーテーションで囲う&年月日の間はハイフンでつなぐ)
##3.登録処理をしてくれるファイルを作る&登録するデータを適切な場所に置く
###3.1 登録処理をしてくれるファイルの考え方
(これはイメージです。間違ってたら、詳しい方がきっと指摘してくれます)
- csvファイルを読み込む
- この時点で、ダミーデータが配列として読み込まれます
[行1,行2,行3,・・・]
さらに細かくいうと、行の中にはカラムが入っているので、こういう状態のはずです。
[
[要素1つ目のcolumn1の値, 要素1つ目のcolumn2の値],
[要素2つ目のcolumn1の値, 要素2つ目のcolumn2の値],
[要素3つ目のcolumn1の値, 要素3つ目のcolumn2の値],
・・・
]
こんな感じで、各行に入っていた値が配列になっています(この辺のゆるい説明は詳しい方が補足しておくれ)。
なので、一つずつ各行に相当する要素をとりだして、以下の処理をやれば、登録できそうですね。
###3.1.1 行の中の値を取り出す。
name = csv['name']
###3.1.2 そして、新しくオブジェクトを作って、とりだした値を代入して、createする
備考ですが : create = new + save
以上のことを、データ登録処理ファイルとしてまとめるとこのようになります。
require 'csv'
# Userのへ初期データ読み込み
csv_data = csv.read('public/Sample.csv', headers: true)
csv_data.each do |d|
name = d['name']
age = d['age'].to_i
user = User.create(name: name, age: age,)
end
なお、日付の場合、値を取り出す部分はこういう処理にして下さい
str = d['birthday'] #まずは文字列として抽出
birthday = Date.parse(str) #文字列を日付に変換
###3.2 データのファイルを適切な場所に置く
データ登録処理をしてくれるファイルで指定したパスに、ファイルを置く
- csv.readで指定したパスの所にファイルを置きます
- ファイルを置ける場所は、publicまたはdbフォルダの模様
##4.データの登録
rake db:seed
##5.登録されたデータの確認
こちらのためになるサイトを見てやってみましょう!