現場rails 写経で得た事(4章) 前編
まずエラーを見ようね。
Migrations are pending. To resolve this issue, run: bin/rails db:migrate RAILS_ENV=development
これはマイグレーションのリセットとかもあり得るのかもしれないけど 意外とスペルミスもあり得るかのでその点、確認して方がいいかも。 今回はマイグレーションファイルにスペルミスがあったと思う。
もう一つ
新規登録するとuserカラムないのに「Userを入力してください」
上記のエラーでずっと悩んでいた。 結論を言うと、4−5−11−3の部分をやっていなかったから エラーが出た。要は僕の凡ミスです。 けど、意味はあった。ここをデバックして見つけたから。 見つけた順序としては
1 binding.irbを以下のところでやる。
def create @task = current_user.tasks.new(task_params) #ここをTask.new(task_params)にしてた。 binding.irb if @task.save redirect_to @task, notice: "タスク「#{@task.name}」を登録しました。" else render :new end end
2 @task.valid?でfalseだと判明する。
3 @task.errors?でuser_idもnilだと気づく。(userカラムないのに)
4 調べると、Task.new(task_params)はuser_idも代入する必要がことを知る。
5 current_user.tasks.new(task_params) に修正する。
これで解決した。
具体的には、まだ言えないところもあるけど デバックを自力でやったのは初めてかもしれんので 褒める意味を込めて、ブログに書きますね。
あと、今回の写経を通じて 大きく成長したなと感じるのは 「エラーに対して免疫がついたこと」 以前までは、動揺したりイライラしたりすることも多かったけど 今回はなんというか平常心でやれたような気がする。 そこは成長したなと個人的に思うかな。
今回はここで終わります。 また4章を見直して それから記事を書きます。