He instalado deshace en mi aplicación y he aplicado lo siguiente en mi archivo:application.html.erb
<div id="user_nav">
<% if user_signed_in? %>
Signed in as <%= current_user.email %>. This cannot be cheese?
<%= link_to 'Sign out', destroy_user_session_path %>
<% else %>
<%= link_to 'Register', new_user_registration_path %> or <%= link_to 'Sign in', new_user_session_path %>
<% end %>
</div>
Corrí y confirmé que todas las rutas son válidas.rake routes
Además, en mi archivo tengo y . routes.rb
devise_for :users
root :to => "home#index"
Recibo el siguiente error de enrutamiento al hacer clic en el enlace «Cerrar sesión»:
No route matches "/users/sign_out"
¿Alguna idea de qué está causando el error?
Solución
Creo que la ruta para cerrar sesión es un método. Esto significa que su enlace de cierre de sesión debe verse así:DELETE
<%= link_to "Sign out", destroy_user_session_path, :method => :delete %>
El tuyo no incluye la pieza. Además, tenga en cuenta que para que esto funcione, también debe incluirlo en su archivo de diseño ().:method => :delete
<%= javascript_include_tag :defaults %>
application.html.erb
Otras respuestas
Cambié esta línea en devise.rb:
config.sign_out_via = :delete
Para
config.sign_out_via = :get
y empezó a funcionar para mí.