Ich habe HTML-Formulare in der Vergangenheit verwendet, um Gerätebenutzer zu aktualisieren, aber jetzt habe ich eine Rails 4-Anwendung mit Gerät zur Authentifizierung und ich würde gerne in der Lage sein, meine zu steuern Benutzer von Remote mit RestClient/CURL. Ich war überrascht, die Benutzerrouten zu betrachten und zu bemerken, dass es keine/users /: id route gibt (kein GET und vor allem kein PUT).Wie aktualisiere ich einen Gerätebenutzer über API-Aufrufe
würde ich einen Befehl wie dies zur Ausgabe der Lage sein mag:
curl -H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-X PUT http://localhost:3000/users/18232 \
-d '{ "user": { "email": "[email protected]", "currrent_password": "password" }}' \
-u [email protected]:password
Wenn ich den Benutzer-ID in dem URL-Pfad nicht angeben, dann wird dieser Antrag erfolgreich sein, aber es wird aktualisiert die E-Mail des Administrators - was ich nicht möchte. Wenn es eine andere Möglichkeit gibt, den Benutzer anzugeben, den ich aktualisieren möchte (vorausgesetzt, dass die ID im Datenhash nicht funktioniert), dann wäre das großartig ..., obwohl das RESTful-Routenstandards für Devices brechen würde.
Wie + – Chris
Logik erstellen Sollten Sie nicht hinzufügen „Ressourcen: Benutzer“ in Ihrer Anwendung routes.rb for/users /: ID funktioniert? –
Ich denke, ich muss meine eigenen schreiben, wenn ich keine vorhandenen Lösungen finden kann. Und ich denke, ich könnte "Ressourcen: Benutzer" zu Routen hinzufügen, aber was ist der "Devise" Weg, Dinge zu tun? In diesem Fall werden die Routen zu einem anderen Controller übertragen, oder ich müsste den Controller für Geräteanmeldungen überschreiben. Ich habe den Code überflogen und ich verstehe nicht alles. –