0
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】seedファイルについて

Posted at

はじめに

今回Railsのアプリを作成中に多くのユーザー情報が必要となったことをきっかけに、
seedファイルを使用したので、備忘録です。
今回はuserの作成をします。devise導入済み。

seedファイルとは

開発を進めていく中で、データを一件一件登録することはとてもめんどくさいですよね。
そのようなときにseedファイルを作成することで、初期データが作成できます。
大量なユーザー情報等を一気に作成することができるので、とても便利です。

導入してみる

簡単なものであれば特別なことは必要なく、ファイルに記述するのみです。
単体であれば

db/seeds.rb
User.create!(
   email: "test@test.com",
   name: "test1",
   passward: "111111"
)

複数であれば

db/seeds.rb
10.times do |n|
  User.create!(
    email: "test#{n + 1}@test.com",
    name: "test#{n + 1}",
    passward: "111111"
  )
end

上記であれば10人分作成します。
n+1の部分は1ずつ増えていきますので、test1,test2,test3......
とユーザーが作成されていきます。
記述が終われば

$ rails db:seed

で完成です。
seedファイルもバリデーションがかかるので、
もし、一度ユーザーの登録していれば注意してください。

今回はユーザーでseedファイルを作成しました。
投稿等も作成はできますが、内容を考えるのがめんどくさいですね。
そのようなときはリアルなデモデータを作成してくれるgemがありますので、そちらを使用した方が良さそうです。

ちなみに、私が今回作成したものは

db/seeds.rb
10.times do |n|
  User.create!(
    name: Faker::Name.unique.first_name,
    email: "test#{n + 1}@test.com",
    introduction: "よろしくお願いします。",
    industry_id: rand(1..14),
    prefecture_id: rand(1..47),
    password: "111111"
  )
end

nameはFakerというgemを使用して、リアルな名前の登録を被らないように作成しています。
職業欄と都道府県は「Active Hash」で登録するようになっていますので、idを入力しています。
rand(1..14)は1~14の間でランダムに選択する記述です。

リアルなデモデータを作成したい場合

「FAKER」もしくは「gimei」というgemを使うと簡単にできます。
詳しくはそれぞれのgitを見ていただいた方がわかりやすいと思うのでリンクを貼っておきます。
「FAKER」
https://github.com/faker-ruby/faker
「gimei」
https://github.com/willnet/gimei

今回はこれで終了です。
簡単にできることはどんどんやっていきたいですね。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?