0

logout GET /logout(.:format) devise/sessions#destroy

This is the route I am interested in.

However, when I go to /logout, I get this error:

No route matches [DELETE] "/logout", how do I change this route from get to delete?

This is how my route is currently set up:

get 'logout', to: 'devise/sessions#destroy', as: :logout

and my link:

<%= link_to "Sign Out", logout_path, method: :delete %>

Albzi
  • 15,431
  • 6
  • 46
  • 63
  • Try with this <%= link_to "Sign Out", logout_path, :method=> 'delete' %> – Debadatt Jul 16 '13 at 13:59
  • @Debadatt, I get the same error. There is no change. – Albzi Jul 16 '13 at 14:01
  • Using `delete 'logout', to: 'devise/sessions#destroy', as: :logout` as suggested in the answer below will get your `link_to` working. It's strange that you didn't get this route automatically with devise, though. When I run `rake routes`, I have a line `destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy` and I didn't have to manually set up the route in `routes.rb`. – James Chevalier Jul 16 '13 at 14:04

1 Answers1

5

Change:

get 'logout', to: 'devise/sessions#destroy', as: :logout

to:

delete 'logout', to: 'devise/sessions#destroy', as: :logout

You can find more information on routing on this page: Routing Rails Guide

James Chevalier
  • 10,604
  • 5
  • 48
  • 74
Zelardiel
  • 74
  • 3