rails エラー文の対処方法 ※rails ver.6.0.0
目的
・備忘録ようにエラー文対処方法を記載する
目次
①エラー文:「 No Template for interactive request 」
②エラー文:「 Ruting Error 」 「 No route matches [POST] "/tweets" 」
③エラー文:「 No Method Error in Tweets Controller#show 」 「 undefined method `comment` for <割愛> Did you mean? comements comments= 」
④その他、エラー字に役立つ対処法
①エラー文:「 No Template for interactive request 」
キーポイント
No Template for interactive request
No Template でViewファイルが存在しないこと表しているため
このエラー文が表示された場合は、Viewファイルを確認すればいい
②エラー文:「 Ruting Error 」 「 No route matches [POST] "/tweets" 」
キーポイント
「 No route matches [POST] "/tweets" 」
[POST]はHTTPメソッド、"/tweets"はURIを指している
「 Ruting Error 」はルーティングでエラーが発生していることを知らせ
「 No route matches [POST] "/tweets" 」でHTTPメソッドPOST、URI"/tweets"に合うルーティングが無いことを表している。この場合、route.rbファイルを確認すればいい
③エラー文:「 No Method Error in Tweets Controller#show 」 「 undefined method `comment` for <割愛> Did you mean? comements comments= 」
キーポイント
「 undefined method `comment` for <割愛> Did you mean? comements comments= 」
最初の赤文字の意味が、commentというメソッドが定義されていないことを表している。
Didからの赤文字がこういうコードを書きたかったでは?と青文字のヒントを教えてくれている。
comment(単数系)→comment(複数系)にする理由は、アソシエーションで一対多の関係になっているため
※アソシエーションの記述はmodelファイルに書いてある
その他、エラー字に役立つ対処法
・エラー文はでていないが、意図した処理をしない場合(エラー)もある。
その場合は、一度「 binding.pry 」のコードを任意のファイルに記述し、railsを起動させターミナルで異常が無いか確認する。
・7つのアクション意外を定義する方法もある。その場合は、「 collection 」を使っている。
例/
collection do
get 'search'
end