LoginSignup
2
1

More than 3 years have passed since last update.

Rails seedの書き方

Last updated at Posted at 2020-10-30

はじめに

今回はseedについて学習しようと思います。

seedとは?

seedファイルというのは簡単に言うと初期データのことです。  
例えば、コーディング中に何らかの理由でデータベースをリセットした場合中に入っているデータももちろんですが消えてしまいます。
ですが、ユーザー登録機能がある場合リセットするたびに毎回ユーザー登録をし直す必要が出てきます。  
仮にそれが普通のユーザーだった場合はそれでもいいかもしれませんが、アドミン権限をユーザーにrollカラムをつける形でアドミン権限の設定を行っていた場合、ユーザー登録のあとにコンソールでアドミン権限を付与するという2度手間になってしまいます。  
なのでrailsではseedファイルに入れておきたいデータをdb/seeds.rbに記述していきます。  

今回は以下のような、userが複数のnoteを持つような構造を持つテーブルを考えたいと思います

基本

seed.rb
User.create!(
   email: 'user@test.com',
   password: 'testtest',
   name: "test",

)

Category.create!(
   name: 'IT',
   is_valid: true,
)

Note.create!(
   title: "OS",
   user_id: 1,
   category_id: 1,
   explanation:
    "OSとはOperation System(オペレーティング・システム)の略で、アプリやデバイスを動作させるための基本となるソフトウェアのことです。 具体的には、キーボードやマウス・タッチパッドなどのデバイスから入力した情報をアプリケーションに伝え、またソフトウェアとハードウェアの連携を司る中枢的な役割を果たします。 パソコンやスマートフォンにはゲームやワープロ・表計算などさまざまな仕事をするアプリケーションがありますが、それらはOSごとに開発されるのが通常です。\r\n\r\n\r\n```\r\n例)\r\n・Mac OS\r\n・Window OS\r\n・Linux\r\n```\r\n\r\n",
   rate: 3,
)

この書き方が一番ベーシックで基本となる書き方だと思う。

複数

seed.rb
Note.create!(
  [
    {
       title: "OS",
       user_id: 1,
       category_id: 1,
       explanation:
        "OSとはOperation System(オペレーティング・システム)の略で、アプリやデバイスを動作させるための基本となるソフトウェアのことです。 具体的には、キーボードやマウス・タッチパッドなどのデバイスから入力した情報をアプリケーションに伝え、またソフトウェアとハードウェアの連携を司る中枢的な役割を果たします。 パソコンやスマートフォンにはゲームやワープロ・表計算などさまざまな仕事をするアプリケーションがありますが、それらはOSごとに開発されるのが通常です。\r\n\r\n\r\n```\r\n例)\r\n・Mac OS\r\n・Window OS\r\n・Linux\r\n```\r\n\r\n",
       rate: 3,
    },
    {
       title: "UI(ユーザーインターフェース)",
       user_id: 1,
       category_id: 1,
       explanation:
        "UIとは、ユーザーインターフェイス(User Interface)の略称で、一般的にユーザー(利用者)と製品やサービスとのインターフェース(接点)すべてのことを意味します。\r\n\r\nユーザーとは、主にWebサービス(サイト)・アプリケーション・ソフトウェアを利用する人を言います。\r\nインターフェースとは、直訳で接点やつながりを意味し、何か2つのものの間での伝達方法や接続の仕方のことを言います。\r\n\r\nWebサイトでいうところのUIは、サイトの見た目や、使いやすさのことを指します。よくUI=見た目、と勘違いをしている方もいるかと思いますが、レイアウトや使用されている画像はもちろん、文字のフォント、メニューやボタンの操作性などユーザーが目にするもの・操作するものすべてが含まれています\r\n\r\n```\r\n・ 画面\r\n・ 見た目\r\n・ 使い勝手\r\n```",
       rate: 3,
    }


  ]
)

seedファイルを書いたあとは

rails db:seed

としてあげることでseedに書かれた内容をデータベースに反映させることができます。

最後に

今回はseedについて学習しました。
他にもいろんな書き方がありますが学習次第また更新しようと思います。
また、ご教授いただけると幸いです。

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