こんにちわ、久しぶりの投稿になるMasaです。

今回の内容はRuby on Railsのエラー周りのお話をしていきます。

かなり初心者向けな内容ですが、誰しもが一度は通るであろう問題。まとめてみたら、便利なのかも?と思ったのでまとめてみました。引っかかりがちなエラーからあんまり見ないようなエラーまで紹介できたらいいなと思います。どういう時にそのエラーが発生したり、解決策なども一緒に紹介していこうと思います。

Syntax Error

引っかかりがちなエラーであるSyntax error、これは構文のエラーです。タイピングミスが主な原因ですね。このエラーが発生したらエラー発生場所付近のコードをよく見るとタイピングミスが発見できると思います。最近は、Atom, sublime textなど優秀なテキストエディタがあり、コーディングミスなどは減るようになっていますが、誰しもが一度は経験のあるエラーであると思います。

NoMethodError 

NoMethodError: undefined method ‘[]’ for nil:NilClass このような形でエラーとして表示されることが多いのですが、重要なのはundefined method []  の部分です。[]の中身が定義されてないというエラーです。このエラーが発生するときは上と同様にタイピングミス、DBに登録していないカラムを指定していたりなどあります。

 

ActionController::RoutingError

RoutingError、Railsではconfigフォルダの中にroute.rbというファイルが存在しますが、ここにルートを登録しないとルートが作られません。基本的にルートの登録はコントローラを作成する時に登録されますが、初期で登録される方法だとあまり見た目が良くないので、登録し直す人が多いのでその時に抜けてしまったり、新たにコントローラにメソッドを作成した時に登録し忘れてエラーになることがありますので、解決策としてconfig/route.rbに登録してあるかどうかを確認してみれば良いと思います。

 

ActionController::ParameterMissing

ParameterMissingはパラメータが見つからないよというエラーです。上で紹介したエラーのようにエラー画面は発生しないです。しかし、ログで見てみるとエラーは発生しております。解決策としてはViewのFormを確認し直すこととコントローラのストロングパラメータを確認し直すと良いと思います。

 

ActionView::Template::Error: undefined local variable or method

ActionView::Template::ErrorはViewファイルが存在しないよと言われております。Viewファイルの中身を確認してみるとそのメソッドのViewファイルが存在しなかったり、私がよくやるミスとしてはrenderでnew, editのフォームを一緒にしているのですが、この時にrenderでFormファイルを持ってきているのですが、こちらのコードがタイピングミスなどでrenderできてないことがあります。解決策としてはrenderを使用している場合はエラー場所のタイピングミス、そもそもフォルダがないという可能性もあるのでそのときはViewファイルを作成しましょう。

 

今回はRuby on Railsのエラーをまとめてみました。ありがちなエラーだけを今回はピックアップして紹介しました。解決策は正直な話、エラー箇所を見れば殆ど分かりますし、英語で表記されているだけなのであまりビビらずに和訳してみると分かりやすいかもしれないです。

ここまで読んだくださりありがとうございます。