【本日の学習内容:新規アプリの作成(DB修正、ユーザー名の表示)】
DB修正、ユーザー名の表示について取り組みました。
基本的なことですが、
rails db:rollbackするとDBに保存されているデータが消えることや
PKをもつテーブルを先にupにしないと関連付けのエラーが出てしまうことを学びました。
今日は以下のように何度もrails db:rollbackしたので、理解が深まりました。
DB構造は一番初めにかなり慎重に詰めないといけないですね。
最初にまとめてテーブルを作成したのですが、
少しでも変更をする可能性がある場合は
都度、テーブル作成したほうが良いと感じました。
- 既にあるexpected_questionsテーブルにuser(references型)を後から追加したいので、再度一から作り直す
- rails db:rollback step=⚪︎ コマンドでdownに戻す
- rails d model ExpectedQuestion コマンド
- rails g model ExpectedQuestion title:string content:text user:references
- bundle exec rake db:migrate
- documentsテーブルに後から null false を入れるかわりにdefalt値を決めていたが、ついでにこちらも再度一から作り直す
- rails db:rollback step=⚪︎ コマンドでdownに戻す
- admin/documents.rbとadmin/correctons.rbの記述をコメントアウトする
- rails d model Document を実行
- rails d model Correction を実行
- bundle exec rake db:migrateで、DocumentのPKとなるUserをupに する
- rails g model Document title:string content:text user:references を実行
- bundle exec rake db:migrate で、CorrectionのPKとなるDocumentをupに する
-rails g model Correction content:text document:references user:references を実行
- bundle exec rake db:migrate を実行する
- admin/documents.rbとadmin/correctons.rbの記述のコメントアウトを解除
- あらためて作成されたモデルにバリデーションを入れ直す
- rails db:rollback で消えたDB内のデータをrakeタスクなどで再度入れる