/ / Błąd routingu: żadna trasa nie pasuje do [GET] "/ users / sign_out - ruby-on-rails, session, devise, tours

Błąd routingu: Żadna trasa nie pasuje do [GET] "/ users / sign_out - ruby-on-rails, session, devise, routes

Używam urządzenia do uwierzytelniania użytkowników. W moich widokach ustawiłem:

<% 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 %>

Jednak kiedy klikam Log_Out, pojawia się błąd:

Żadna trasa nie pasuje do [GET] „/ users / sign_out”

Jednak kiedy sprawdzam moje trasy rake, otrzymuję:

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

Odpowiedzi:

1 dla odpowiedzi № 1

Co mówiło nurkowanie na bezdechu.

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

1 dla odpowiedzi nr 2

Domyślnym wylogowaniem jest użycie metody „usuń”. Twoja trasa zawiera również informację, że metoda to „USUŃ”

Jeśli chcesz użyć metody „get”

Zmodyfikuj devise.rb na

config.sign_out_via = :get

0 dla odpowiedzi № 3

Baloo ma rację, upewnij się, że używasz metody: delete. Możesz to wyraźnie zobaczyć, jeśli przywołasz

rake routes

Zobaczysz ścieżkę, a także metodę.