LoginSignup
0
0

More than 1 year has passed since last update.

【Rails】seedファイルを用いてデータ作成する方法

Posted at

My Profile

プログラミング学習歴②ヶ月目のアカウントです!
プログラミングスクールで学んだ内容や自分が躓いた箇所等のアウトプットの為に発信しています。
また、プログラミング初学者の方にわかりやすく、簡潔にまとめて情報共有できればと考えています。
もし、投稿した記事の中に誤り等ございましたら、コメント欄でご教授いただけると幸いです。 

対象者

  • seedファイルを使ってデータ作成したい方
  • そもそもseedファイルって何?と考えている方

目的

  • seedファイルを使用し、データ作成をすること

実際の手順と実例

1.seedファイルとは

結論:開発のサポートをしてくれるファイルの1つです!
(rails newした際にdbフォルダ内に作られます)
メリットとしては以下の通りです。
* 開発段階のアプリに動作確認のための初期データを投入できる
* 一度に大量のデータを作成できる

2.実例

前提:Bookモデル(カラム:title,body)

seeds.rbに以下の例を記述

  List.create!(
    title: 'railsを学ぼう',
    body: 'seedファイルについて'
  )

その後データベースに反映させる

$ rails db:seed

動作されているかの確認として
rails cで確認します

$ rails c
Running via Spring preloader in process 10372
Loading development environment (Rails 5.2.6)
2.6.3 :001 > Book.all
  Book Load (0.4ms)  SELECT  "books".* FROM "books" LIMIT ?  [["LIMIT", 11]]
 => #<ActiveRecord::Relation [#<Book id: 1, title: "railsを学ぼう", body: "seedファイルについて", created_at: "2021-07-10 01:18:57", updated_at: "2021-07-10 01:18:57">]> 

上記の最後の行をみるとtitleとbodyにデータが入ったことが確認できました!

3.timesメソッドの活用

timesメソッドを活用すると
seedsファイルでは複数のデータを一括で作成できます。

seedsファイルに以下のデータを入力します。

10.times do |number|
    Book.create!(title: 'timesを学習しよう',body: number)
  end

上記記載の上で、rails db:seedを実行後、
rails cで確認すると、、、

$ rails c
Running via Spring preloader in process 10972
Loading development environment (Rails 5.2.6)
2.6.3 :001 > Book.all
  Book Load (0.5ms)  SELECT  "books".* FROM "books" LIMIT ?  [["LIMIT", 11]]
 => #<ActiveRecord::Relation [#<Book id: 1, title: "railsを学ぼう", body: "seedファイルについて", created_at: "2021-07-10 01:18:57", updated_at: "2021-07-10 01:18:57">, #<Book id: 2, title: "railsを学ぼう", body: "seedファイルについて", created_at: "2021-07-10 01:30:41", updated_at: "2021-07-10 01:30:41">, #<Book id: 3, title: "times を学習しよう", body: "0", created_at: "2021-07-10 01:30:41", updated_at: "2021-07-10 01:30:41">, #<Book id: 4, title: "timesを学習しよう", body: "1", created_at: "2021-07-10 01:30:41", updated_at: "2021-07-10 01:30:41">, #<Book id: 5, title: "timesを学習しよう", body: "2", created_at: "2021-07-10 01:30:41", updated_at: "2021-07-10 01:30:41">, #<Book id: 6, title: "timesを学習しよう", body: "3", created_at: "2021-07-10 01:30:41", updated_at: "2021-07-10 01:30:41">, #<Book id: 7, title: "timesを学習しよう", body: "4", created_at: "2021-07-10 01:30:41", updated_at: "2021-07-10 01:30:41">, #<Book id: 8, title: "timesを学習しよう", body: "5", created_at: "2021-07-10 01:30:41", updated_at: "2021-07-10 01:30:41">, #<Book id: 9, title: "timesを学習しよう", body: "6", created_at: "2021-07-10 01:30:41", updated_at: "2021-07-10 01:30:41">, #<Book id: 10, title: "timesを学習しよう", body: "7", created_at: "2021-07-10 01:30:41", updated_at: "2021-07-10 01:30:41">, ...]> 

と表示され、10回分のデータが作成されました!!

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