はじめに
ゲストログイン機能を実装したが、ユーザー登録以前に、2つの情報を登録し、ユーザーと紐づけていたので、それを解決するために、試行錯誤した結果、初期データの作成にたどり着いた。
seeds.rbとは
Rails6.0では、(もう少し前からだとは思うが、)デフォルトで入っているファイル。dbディレクトリの配下にある。最初から、コメントアウトで色々記述されているが、説明なので、消してしまって構わない。
記述方法
seeds.rb
には、初期データとして作成しておきたい(テスト用などの目的)データを直接作る。
User.create!(name: 'ゲスト', email: 'gest@sample.com')
モデル名.create!(カラム名: 値)
が基本形。
create!
の部分は他にも、いくつか使えるメソッドがある。(次回、紹介予定)
上記のように、書けば、いくつでも初期データを作成できる。モデル名の部分を他に変えれば、別のテーブルにも作成可能。
カラム名にidを用いることもできるので、いつもは自動で振り当てられるidについても、任意で作成可能。
ちなみに、eachメソッドやtimesメソッドを使って、繰り返し処理によって、大量の初期データを作成することも可能。
初期データ生成方法
ターミナルで、
rails db:seed
を実行。特にエラーが無ければ、特に反応なく、次の行にいき、待機状態となる。(success!みたいに、表示してくれれば安心なのに…)。テーブルで実際に保存されているか、確認するとよい。
最後に
これで本番環境でも、生成のコマンドさえ実行すれば、無事に、ゲストログインもできるはず!