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'
解決策
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
Author And Source
この問題について(ActionController::RoutingError (No route matches [GET] "/users/sign_out")), 我々は、より多くの情報をここで見つけました https://qiita.com/___fff_/items/a3d120784dbae8d28263著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .