Search code examples
ruby-on-railsrubydeviseruby-on-rails-5

No route matches [GET] "/users/sign_out" rails 5


When I try to sign out i am getting error of No route matches [GET] "/users/sign_out". this is my link tag for Signout.

 <%= link_to "Sign Out", destroy_user_session_path, method: :get , class:  "nav-link"  %>

Here is what my routes related to my User model and Devise look like:

Rails.application.routes.draw do
  devise_for :users do
    get '/users/sign_out' => 'devise/sessions#destroy'
  end

  root 'books#index'
  resources :books do

    member do
      put "like", to: "books#upvote"
    end

  end
end

And this is my devise.rb

config.sign_out_via = :get

Solution

  • Try the following in routes.rb

    devise_for :users
    devise_scope :user do
      get '/users/sign_out' => 'devise/sessions#destroy'
    end
    

    for more information how to by devise