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 № 1Co 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ę.