LoginSignup
1
0

More than 3 years have passed since last update.

【Rails】seedファイル使い方

Posted at

はじめに

学習中の備忘録です。

概要

  • 通常のデータ登録
  • ancestryを使用した際のデータ登録

前提

Rails 5.2.4.2

通常のデータ登録

今回は格言をランダムで表示する為に、messageテーブルにcontent,author,descriptionを登録する。

seeds.rb
Message.create([{content: "自分自身を信じて~", author: "ゲーテ", description: "ドイツの詩人"},
{content: "たいていの人は~", author: "バーバラ・ブラハム", description: "米国の女性ビジネスコンサルタント"},
#~省略~
{content: "人間のほほえみ~", author: "マザー・テレサ", description: "カトリック教会の修道女、ノーベル平和賞受賞"}
])

rails db:seedを実行

ターミナル
% rails db:seed

seed後のmessageテーブル
60bda92c2d654cd223e8512216a6e2a1.png

ancestryを使用した際のデータ登録

以前フリマアプリを作成した際の多階層categoriesテーブル(親・子・孫)
※ancestryについては別記事で。先にインストールしてください。

seeds.rb
#親カテゴリーのnameカラムを登録し、子カテゴリー登録のためにそれぞれ変数に代入。
lady, men, baby_kids, interior_housing, book_music_game, toy_hobby_goods, cosme_perfume_beauty, appliance_smartphone_camera, sports_leisure, handmade, ticket, car_motorcycle, others 
= Category.create([{name: "レディース"}, {name: "メンズ"}, {name: "ベビー・キッズ"}, {name: "インテリア・住まい・小物"}, {name: "本・音楽・ゲーム"}, {name: "おもちゃ・ホビー・グッズ"}, {name: "コスメ・香水・美容"}, {name: "家電・スマホ・カメラ"}, {name: "スポーツ・レジャー"}, {name: "ハンドメイド"}, {name: "チケット"}, {name: "自動車・オートバイ"}, {name: "その他"}
])

#"レディース"の子カテゴリーに"トップス"を登録し、孫カテゴリー登録のために変数に代入。
lady_1 = lady.children.create(name: "トップス")

#"トップス"の子カテゴリーに各カテゴリー登録。
lady_1.children.create([{name: "Tシャツ/カットソー(半袖/袖なし)"},
{name: "Tシャツ/カットソー(七分/長袖)"},
{name: "シャツ/ブラウス(半袖/袖なし)"},
#~省略~
{name: "その他"}])

#以下登録したいカテゴリーの数だけ続ける
lady_2 = lady.children.create(name: "ジャケット/アウター")
lady_2.children.create([{name: "テーラードジャケット"},
{name: "ノーカラージャケット"},
#~続く~

rails db:seedを実行

ターミナル
% rails db:seed

seed後のcategoriesテーブル
93fbea2dac339993514d7e3f38619202.png

まとめ

別モデルのデータを一つのファイルにまとめて記述しても問題なく登録できます。
が、ファイルを分けた方が良いみたいですので、それはまた別の機会にします。

1
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
1
0