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


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