/ / Error de enrutamiento: ninguna ruta coincide [GET] "/ users / sign_out - ruby-on-rails, session, idear, rutas

Error de enrutamiento: ninguna ruta coincide [GET] "/ users / sign_out - ruby-on-rails, session, idear, rutas

Estoy usando el dispositivo para la autenticación del usuario. En mi opinión, he configurado:

<% if user_signed_in? %>
<li><%= link_to "Log Out",  destroy_user_session_path  %></li>
<% else %>
<li><%= link_to "Sign In", new_user_session_path  %></li>
<% end %>

Sin embargo, cuando hago clic en Log_Out obtengo un error:

Ninguna ruta coincide [GET] "/ users / sign_out"

Sin embargo, cuando reviso mis rutas de rastrillo, obtengo:

 devise/sessions#destroy   destroy_user_session DELETE /users/sign_out(.:format)

Respuestas

1 para la respuesta № 1

Lo que dijo apneadiving.

<%= link_to "Log Out",  destroy_user_session_path, method: :delete  %>

1 para la respuesta № 2

El cierre de sesión predeterminado es utilizar el método "eliminar". Tu ruta también dice que el método es "BORRAR"

Si quieres usar el método "get"

Modifique devise.rb a

config.sign_out_via = :get

0 para la respuesta № 3

Baloo tiene razón, asegúrese de utilizar el método: delete. Puede ver esto claramente si invoca

rake routes

Verás la ruta y el método.