Routein Error Railsエラー問題の解決するための考え方 その6 ~番外編~

ルーティングかビューのどちらかに誤りがある可能性高い。

 

・サインアウトボタンを押すとRoutein Errorになる。

パスをリクエストした箇所の書き方が間違っている可能性がある為、ターミナルでrails routesでコマンド確認する。

ここで正しいパスが確認できる。

表示の記載があるreview_site.html.erbを見に行く。

すると、<%= link_to 'サインアウト', '/user/sign_out', method: :delete %>の所で、userが単数形になっている。

→usersに変更することで正解。

 

・ツイート投稿画面のSENTボタンを押すとRouting Errorが起きる

→Routing Errorということは処理の何かがおかしいので、routes.rbを見に行く。

→resourcesを見て、do~endは問題無いので、[]の中身を見てみる。

すると、tweetsのエラー文と比べるとcreateが無いことがわかる。

よってresources :tweets, only: [:index, :show, :new, :create, :destroy, :edit, :update] docreateを追記することで正解。

 

・ログアウトしようとするとエラーが表示される

Routing Errorと表記があり、No route matches [POST] "/users/sign_outと記載あり、まずは下のHTTPSとアクションが正しいか見に行く。

→DELETEを見ると、特には問題ないように感じるので、表示に関わるapp/views/users/show.html.erbを見に行く。

→23行目を見ると、method: : destroyと記載があるので、<%= link_to "サインアウト", '/users/sign_out', method: :delete %>と記載して正解。