質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

0回答

442閲覧

Routing Error No route matches [GET] "/users/sign_out" の解決

thikashi

総合スコア4

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2019/10/04 03:48

編集2022/01/12 10:55

▪️解決したいこと
製作中のブログでログアウトしようとするとエラーが出ることを解決したい。
http://localhost:3000/users/sign_out
にアクセスしようとすると下記のエラーが表示される。
————————————
Routing Error
No route matches [GET] "/users/sign_out"
Rails.root: /Users/sakaitakashi/projects/blog-app
Application Trace | Framework Trace | Full Trace

Routes
Routes match in priority from top to bottom
————————
Routing Errorなので、routes.rbの中身を確認したが、
問題が見当たりませんでした。

▫️自分で調べた内容
「No route matches [GET] "/users/sign_out”」で検索し、下記記事を参考にしました。
http://gaku3601.hatenablog.com/entry/2014/08/24/204538

▫️どのようなことを考えたか
config/initializers/devise.rbのconfig.sign_out_viaの値をDELETE→GETに編集しましたが、同じエラーのままでした。

資材はこちらです→ https://github.com/sakai51/blog-app.git
追記:routes.rbの内容

Ruby

1Rails.application.routes.draw do 2 devise_for :users 3 root 'blogs#index' 4 get 'blogs' => 'blogs#index' 5 get 'blogs/new' => 'blogs#new' 6 post 'blogs' => 'blogs#create' 7end

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/10/04 05:04

routes.rb の内容を追記してくださいますか。
thikashi

2019/10/04 05:13

メッセージありがとうございます。 追記しました。 こちらにも記載致しますので、ご確認のほど、何卒よろしくお願い致します。 routes.rbの内容 ```Ruby Rails.application.routes.draw do devise_for :users root 'blogs#index' get 'blogs' => 'blogs#index' get 'blogs/new' => 'blogs#new' post 'blogs' => 'blogs#create' end ```
退会済みユーザー

退会済みユーザー

2019/10/04 05:15

続けてになり恐縮ですが、$ rails routes の結果も追記して頂けますか。
thikashi

2019/10/04 05:24

下記の結果となっています。ご確認のほど、お願い致します。 ----------------------------------------------- $ bundle exec rake routes Prefix Verb URI Pattern Controller#Action new_user_session GET /users/sign_in(.:format) devise/sessions#new user_session POST /users/sign_in(.:format) devise/sessions#create destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy new_user_password GET /users/password/new(.:format) devise/passwords#new edit_user_password GET /users/password/edit(.:format) devise/passwords#edit user_password PATCH /users/password(.:format) devise/passwords#update PUT /users/password(.:format) devise/passwords#update POST /users/password(.:format) devise/passwords#create cancel_user_registration GET /users/cancel(.:format) devise/registrations#cancel new_user_registration GET /users/sign_up(.:format) devise/registrations#new edit_user_registration GET /users/edit(.:format) devise/registrations#edit user_registration PATCH /users(.:format) devise/registrations#update PUT /users(.:format) devise/registrations#update DELETE /users(.:format) devise/registrations#destroy POST /users(.:format) devise/registrations#create root GET / blogs#index blogs GET /blogs(.:format) blogs#index blogs_new GET /blogs/new(.:format) blogs#new POST /blogs(.:format) blogs#create rails_service_blob GET /rails/active_storage/blobs/:signed_id/*filename(.:format) active_storage/blobs#show rails_blob_representation GET /rails/active_storage/representations/:signed_blob_id/:variation_key/*filename(.:format) active_storage/representations#show rails_disk_service GET /rails/active_storage/disk/:encoded_key/*filename(.:format) active_storage/disk#show update_rails_disk_service PUT /rails/active_storage/disk/:encoded_token(.:format) active_storage/disk#update rails_direct_uploads POST /rails/active_storage/direct_uploads(.:format) active_storage/direct_uploads#create
退会済みユーザー

退会済みユーザー

2019/10/04 08:12 編集

自信がないので、こちらですみません。 ログアウトの記述は「layouts/application.html.erb」でしょうか? 下記のように変更してみて動きますでしょうか? <li><%= link_to 'ログアウト', destroy_user_session_path, method: :delete %></li> 参考:https://qiita.com/y-temp4/items/2d50feb3ff0d65acdf67
thikashi

2019/10/04 10:21

メッセージありがとうございます。 「"ログアウト"」を「'ログアウト'」に変えられたのですね。 頂いたコードをそのまま使いましたが、同じエラーとなりました。
siruku6

2019/10/05 04:34

log_out又はsign_outするためのボタンやリンクを設置しているviewファイルがあると思いますので、そちらを掲載することはできますか? それが原因ではないかと感じているためです。
8zca

2019/10/05 16:09

link_toやaタグdeleteで叩くために、裏側でJavaScriptが走ってDELETEメソッドで送ってるんですが、 その処理をしているのがapplication.jsにあるrails-ujsです。 rails newしたときにlayouts/application.html.erbでapplication.jsを読み込むようにタグが生成されるのですが、githubにあるapplication.html.erbは消されてしまっているようですね。 たぶんそのせいでJSが起動せずGETで送られてしまってるんだと思います。
thikashi

2019/10/06 01:36

「log_out又はsign_outするためのボタンやリンクを設置しているviewファイル」は下記です。 ``` <!DOCTYPE html> <html> <head> <title>ミニアプリ</title> <style type="text/css" href="./style.css"></style> <!-- 後から貼り付け↓ここから --> <!-- CSSとJavaScriptダウンロード用のhtmlタグ --> <!-- Compiled and minified CSS --> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.2/css/materialize.min.css"> <!-- Compiled and minified JavaScript --> <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.2/js/materialize.min.js"></script> <!-- jQueryのCDN --> <script src="https://code.jquery.com/jquery-3.4.1.js" integrity="sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU=" crossorigin="anonymous"></script> <!-- 後から貼り付け↑ここまで --> </head> <body> <!-- ナビゲーションバーのhtmlコード --> <nav class="blue accent-3" > <div class="nav-wrapper"> <a href="/blogs" class="brand-logo">僕のブログ</a> <ul id="nav-mobile" class="right hide-on-med-and-down"> <% if user_signed_in? %> <li><%= link_to "ログアウト", destroy_user_session_path, method: :delete %></li> <li><a href="/blogs/new">新規記事投稿</a></li> <% else %> <li><%= link_to "ログイン", new_user_session_path, class: 'post' %></li> <li><%= link_to "新規登録", new_user_registration_path, class: 'post' %></li> <% end %> </ul> </div> </nav> <%= yield %> <script type="text/javascript" src="./app.js"></script> </body> </html> ```
thikashi

2019/10/06 01:49

8zca様 メッセージありがとうございます。 私の知識では、すぐに理解できそうにないですが、頂いた回答を参考に進めて行きたいと思います。
siruku6

2019/10/06 01:53

私も知らなかったですが、8zcaさんがおっしゃるとおりであれば、以下の行をapplication.html.erbのcssの下あたりに設置すればよさそうです。 <%= javascript_include_tag 'application' %> もちろん app/assets/javascripts/application.js が元通り残っていればの話ですが。 上手くいったら自己解決方法を記入して共有して下さい。 なかなかネットでは見かけない貴重な情報だと感じました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問