自分用のアウトプット。
前日に苦しめられたエラー。
作成したusersテーブルにカラムを追加しようとしたところから上手くいかなくなりました。
追加はできてたのかな?
よく分からんけどとにかくページが表示できなくなった。
deviseがおかしいのかと思い、導入と逆の手順で削除を実行。
その後改めて導入し直して同様の手順を繰り返す。
エラー。
rails db:migrate:status で確認すると、**** NO FILE **** とか表示されてる。
これはアカンと思い、思い切って初めから作り直すことに。
pictweet2という名前で作り直したものの、前回のカラム追加よりも手前、usersテーブルを作るところでエラーが発生。
Sequel Proで確認するとテーブルはあるんだけど、
rails db:migtate:status で確認すると通常は up となるところが down の状態になってる。
ActiveRecord::PendingMigrationError という表記があるので、マイグレーション作業中にエラーが起こってるのは間違いない。
なんだろう なぜかしら どうなっちゃってるの
とか色々考えたんですがよく分からない。
その後。
Sequel Proのusersテーブルの情報で、エンコーディングがutf8mb4となっているのを発見。
あれ、これutf8にするんじゃなかったっけ、とdatabase.ymlを確認すると、
utf8ではなくutf8mb4のまま。
これじゃん!!!
エラー文の中にMySQL2がどうのこうのとか書いてあったけどこれのことか!! と判明。
作り直し作業中に、そこの作業を見落としていたらしい。
早速database.ymlを編集してマイグレーションを実行するも、駄目。
なんでや……。と途方に暮れてしまったので、涙を飲んで再度のやり直し。3回目。
実行した手順を一つひとつメモしながら、ページを確認し、おかしなところが無いかをくまなくチェック。
すると、3回目にしてログイン機能実装のところまで完了! 動作も問題なし!
2回目との違いはutf8の部分だけだったので、やっぱあれじゃんと確信しました。
その後、データベースの削除とかの説明があったので、2回目のデータを使ってデータベース削除→再導入を試したところ、2回目のデータでもエラー解消!
database.ymlを編集してもデータベースは違うエンコーディングのままだから、そりゃ上手くいかないよねっていう。
マイグレーションファイル関係のエラーの解決方法もしっかりと学び、これでようやく先に進めそうです。
まじでこれで上手くいかなかったら月曜以降どうしようと慌てふためいてました。
でも結果的にトライ&エラーを繰り返したことによって、何によってエラーが起こってるのかというのがしっかり理解できたので、むしろ良かったかも。
少し成長できたかなという感じです。
その後も小っちゃいエラーが。
新規登録するページのメールアドレス入力欄を作るとこ。
<%= f.text_field :nickname %>
って記述をするんだけど、この一文を加えることでエラーが起こる。
これを削除するとエラーが消える。
でもこの一文に記述ミスは無し。
なんでや……と思って途方に暮れそうになったんだけど、一旦サーバーを再起動したら普通にいけた。
とりあえずエラーの時はサーバー再起動を試してみるのが良さそう。