1
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 1 year has passed since last update.

【Rails】seeds.rbファイルとは

Posted at

##seedsファイルとは
初期データを生成してくれるファイルのことで、簡単にテストデータを作ったりできる。

##記入方法

#通常の場合
User.create(name: "Taro")
User.create(name: "Hanako")

#配列の場合
users = User.create([{name: "Taro"}, {name: "Hanako"}])

#大量のテストデータの場合(この場合は100回繰り返す)
100.times do |n|
  User.create(title: "test{n}人目", content:"test!#{n}回目")
end

内容を記入し終わったら、rails db:seedのコマンドを実行。

##Faker
このFakerを使うと、実在しそうなデータを生成してくれるgemがあるのでその手順や記入法も記載しておく。

Gemfile

gem 'faker'

↑この文を追加後、bundle installを入力。

記入法

10.times do
  User.create(
      first_name: Faker::Name.first_name,
      last_name: Faker::Name.last_name,
      email: Faker::Internet.email,
      password: 'abcde',
      password_confirmation: 'abcde'
  )
end

20.times do |n|
  Board.create(
      user: User.offset(rand(User.count)).first,
      title: "タイトル#{n}",
      body: "本文#{n}"
  )
end

上記のFakerで作成される人名は日本語設定になっていると、日本語の名前になったりする。

User.offset(rand(User.count)).first
offsetメソッドは、データの取得開始位置を指定する。
randメソッドは整数値を与えると、0からその整数値未満の整数を返す。
なので、User.offset(rand(User.count)).first は、ユーザーの数の中から(例えば10だとすれば、0から9)ランダムに数字を生成し、ユーザーテーブルのデータ取得開始位置を決めて、その最初のユーザーデータを返すように指示する。

Fakerで利用できるデータ

##参考記事
[Fakerを使ってダミーデータを作る【Day 8/30 2nd】]
(https://note.com/kentarotawara/n/n240bf41b5a54)
seeds.rbの使い方

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?