konakona-engineers diary

新米エンジニアのプログラミングブログ

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