Ich überprüfe meine Website, wenn JS deaktiviert ist. Und habe einen lustigen Fehler.Ich kann mich nicht vom Gerät abmelden, wenn JavaScript deaktiviert ist
Es passiert auf der Zielseite, wenn ein Client
angemeldet ist und versucht, sich abzumelden. (Client
ist ein Modell Devise)
Mein navbar hat diese Abmeldelink:
<li><%= link_to 'exit', destroy_client_session_path, method: :delete %></li>
Alles geht gut, wenn JS aktiviert ist, aber wenn JS deaktiviert ist bekomme ich diesen Fehler:
ActiveRecord::RecordNotFound in ClientsController#show
Couldn't find Client with 'id'=sign_out
Diese passiert auf der clients_controller.rb (Ich habe eine clients
Ordner mit allen Controller dort drin: confirmations_controller.rb
, omniauth_callbacks_controller.rb
, ... aber ich habe auch eine clients_controller.rb
Datei mit dem klassischen REST: show, ...)
Der Fehler tritt in diesem Controller in der Show Aktion:
def show
if client_signed_in? && current_client.id == Client.find(params[:id]).id then
@client = Client.find(params[:id])
else
redirect_to root_path
end
end
ich hier überprüft, ob die aktuellen angemeldeten in client
den Client passend, die in der Navigationsleiste übergeben wird, die so nur-angemeldet Client kann ihre sehr Profil ...
sehen Obwohl kann der Regler die es nicht durchführen überprüfen ..
Meine Frage scheint: Warum das Abmelde mich an den Client-Controller sendet und warum enab Ling oder Deaktivierung JS hat eine Rolle hier?
Verdammt. klappt wunderbar!! Vielen Dank. Obwohl können Sie bestätigen, dass dies der Devise-Code ist, der JS auslöst, wenn die Delete-Methode aufgerufen wird ... Ursache Ich denke, dass delete nur eine http-Abfrage ist, die unabhängig von JS ist – Maxence
Ich aktualisierte die Antwort, sie kommt von 'jquery-ujs' – Iceman