エラー表示で現れるエラー文について
下記のように5つに分けられる。
①NoMethodError[問題箇所のコントローラー]#アクション
メソッドが定義されていなかったり、
リクエストで指定されたコントローラーにそのアクションが無い場合に起こるエラー
メソッドを使用するインスタンスのクラスに定義されていないメソッドを使用するとエラーに
エラーメッセージのなかで「`[メソッド名]' for nil::nilclass」と表示されると
メソッドを使用しているインスタンスがnilになっています。そのインスタンスを生成している箇所を要チェック
②Pending migration error
実行していないマイグレーションファイルがあると起こるエラー
マイグレーション忘れが原因
実行し忘れているマイグレーションファイルがないかチェック
③Routing Error
リクエストしたルーティングが設定されていないと起きるエラー
ルーティングの確認と間違ったルーティングをリクエストしていないか確かめるべき。
routes.rbで設定しているルーティングの記述をきちんと確認?
routes.rbを開き、リクエストするルーティングの記述が正しいかどうかチェック
エラー文が出ている画面のurLをみてチェック、
現在、送られているパスを確認することができます。
localhost:3000/check これがリクエストとして送られている
よくある間違いは、routes.rbの中で「:id」を指定されているルーティングで、
viewファイル側のリクエスト箇所でも同じように'tweets/:id'としてしまうことです。
この場合は必ずビュー側で式展開を行うこと
routes.rbに書いてあるHTTPメソッドと、
ルーティングをリクエストする箇所で指定しているHTTPメソッドが合っているか確認
④syntax error
Rubyの文法エラー
構文に必要な「end」がなかったり、
""(クォーテーション)や「,」(カンマ)忘れが主な原因
メソッドの中でif文やeach文を利用してエラーが出たら必ずendの数が正しいかどうかを確認
""(クォーテーションや「,」(カンマ)忘れをよくよくチェック
⑤Template is missing
指定されたviewファイルが無い場合などに起きるエラー
リクエストを受け取るアクションに対応したviewファイルがあるかを確認(erbファイルを確認)