LoginSignup
2
5

More than 3 years have passed since last update.

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

Last updated at Posted at 2019-06-30

deviseでログアウトのリンクつけたらエラー

Started GET "/users/sign_out" for ::1 at 2019-06-30 18:18:57 +0900

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

vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/middleware/debug_exceptions.rb:65:in `call'
vendor/bundle/gems/web-console-3.7.0/lib/web_console/middleware.rb:135:in `call_app'
vendor/bundle/gems/web-console-3.7.0/lib/web_console/middleware.rb:30:in `block in call'
vendor/bundle/gems/web-console-3.7.0/lib/web_console/middleware.rb:20:in `catch'

解決策

ログアウトのリンクはmethodを指定

view.erb
<%= link_to 'Logout', destroy_user_session_path, :method => :get, remote: true %>
config/initializers/devise.rb
config.sign_out_via = :delete

        ⬇️変更

config.sign_out_via = :get

ルーティングをしっかり確認

routes.rb
devise_for :users

下記を追加(なかったら)

application.js
//= jquery
//= jquery_ujs

下記を追加(なかったら)

views/layouts/application.html.erb
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>

以上

参考
https://stackoverflow.com/questions/9590598/devise-rails-no-route-matches-get-users-sign-out

2
5
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
2
5