0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ログアウトでルーティングエラー

Posted at

Routing Errorが起きた

deviseを導入して、ログアウトしようとしたところ、下記のエラーが発生しました

ActionController::RoutingError (No route matches [GET] "/users/sign_out"):

このエラーの原因はアプリを作成したばかりで、javascriptが正常に動作していないことが原因でした

原因の確認

ルーティングがあっているか確認

destroy_user_session DELETE /users/sign_out(.:format)    public/sessions#destroy
_header.html.erb
<%= link_to destroy_user_session_path, method: :delete, style: "display:flex; align-items: center; flex-direction: column;" %>

path名も正しい、method: :deleteと記述しているにもかかわらず、ルーティングエラーでは[GET]を受け取っているようです

というのもこのmethodをサーバー側に伝えているのはjavascriptのようで、ここが動作していないとmethodがdeleteと伝わらないようです!

解決編

このコマンドを打てば一発解決しました!

$ yarn add @babel/plugin-proposal-private-methods @babel/plugin-proposal-private-property-in-object

何をしているかというと2つのプラグインをインストールしています!

@babel/plugin-proposal-private-methods

  • このプラグインは、JavaScriptのクラス内でプライベートメソッドを使用できるようにするためのものです

@babel/plugin-proposal-private-property-in-object

  • このプラグインは、オブジェクトリテラル内でプライベートプロパティを使用できるようにするためのものです
    これにより、プライベートなクラスプロパティをオブジェクトの一部として扱えるようになります

さいごに

新しいアプリ作成するたびにログアウトでエラー起きて同じことをしてたので、メモ残しとこうと思います笑

このコマンドはrails newしたらとりあえずやっとけと、メンターさんに教えてもらったコマンドで、javascriptが正常に動作するために必要と聞いていました

プラグインについてまだまだわからないことが多いので、もう少し調べようと思います!
ひとまず今回はエラー解決方法をメモしておきます✍️

誤り等ございましたら教えていただけますと幸いです!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?