No route matches "/users/sign_out" devise rails 3
I think the route for signing out is a DELETE
method. This means that your sign out link needs to look like this:
<%= link_to "Sign out", destroy_user_session_path, :method => :delete %>
Yours doesn't include the :method => :delete
part. Also, please note that for this to work you must also include <%= javascript_include_tag :defaults %>
in your layout file (application.html.erb
).
I changed this line in devise.rb:
config.sign_out_via = :delete
to
config.sign_out_via = :get
and it started working for me.
You probably didn't include jquery_ujs javascript file. Make sure you are using the latest version of jquery-ujs : https://github.com/rails/jquery-ujs and the last files available :
rails generate jquery:install
You should not have any more rails.js file. If you do, you're probably out-of-date.Make sure also this file is loaded with defaults, in config/application.rb
config.action_view.javascript_expansions[:defaults] = %w(jquery.min jquery_ujs)
(Again, you should not have rails.js file here).Finally, add the link as documented on Devise wiki (haml-style):
= link_to('Logout', destroy_user_session_path, :method => 'delete')
And everything will be fine.