2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CSVファイルを使用してRailsアプリに反映させる

Last updated at Posted at 2019-08-21

csvファイルを使用してrailsアプリに初期データを投入

チーム開発をしていて、seeds.rbからデータベースに初期データを投入する際にコードをひたすら書くのではなくcsvファイルに大量のデータを落とし込んでそれをseed.rbに読み込む記述をするという方法を使用したので、そのやり方を記録として残しておく!!

CSVファイルの作成手順

1.今回は某サイトよりデータをお借りしました
まずはデータを抽出
commnd + aで全選択コピー
スクリーンショット 2019-08-21 18.23.09.png

2.適当な整形ツールでデータを整える
スクリーンショット 2019-08-21 18.26.09.png

3.整えたデータをgoogle スプレッドシートで貼り付け
ツールからフィルターを作成
改行を取り除くために空白セル以外を表示
空白セル以外を表示させる
コピーして貼り付け
改行がないデータの出来上がり!!
 スクリーンショット 2019-08-21 18.36.56.png

4.numbersアプリでcsv書き起こし
データをnumbersアプリでcsvファイルとして書き起こしました
スクリーンショット 2019-08-21 18.44.35.png

Railsに保存

今回の目的として、rake db:seedをした時にデータをデータベースに投入したいのが目的のため下記の図のファイル構成とする

スクリーンショット 2019-08-21 18.48.24.png dbの中に上記csvを入れてやれば良いと思います。 **ブランドはデータ量が多かったのでbrandフォルダを作成してます**

Seeds.rbにデータベースに反映するコードを記述

# 左辺nameがデータベースのカラム、右辺Nameがcsvのカラム
CSV.foreach('db/brand/men_brand.csv', headers: true) do |row|
  Brand.create(
    name: row['Name'],
  )
end
スクリーンショット 2019-08-21 18.56.48.png

最後に

これでrake db:seedをすればデータが反映されるはずです
親があって、子があって、孫があるなどの階層が深い場合のseeds.rbの記載方法はそれぞれ紐付けるのが難しいですよね汗
余力があればそのコードもアウトプットとして書こうと思います!!

追加

vs codeの拡張機能でExcel Viewer機能を追加するとcsvファイルがみやすくなります

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?