Ich habe versucht, auf eine andere Seite nach der Bearbeitung eines Eintrags umleiten, nahm ich an, dass es den Update-Code verwendet, weil Sie die Datenbank aktualisieren. Ich brauchte einige Zeit, um zu erkennen, dass ich die falsche Aktion in der Steuerung verwendete. Kann jemand bitte erklären, wie Bearbeiten und Update funktionieren. Warum gibt es zwei verschiedene Aktionen? Was sind die Unterschiede zwischen ihnen?Restful Rails Edit vs Update
Antwort
bearbeiten Aktion ist verantwortlich für die Darstellung der Ansicht
Update-Aktion für die Interaktion mit dem Modell verantwortlich ist (db Updates usw.)
Wenn Sie rake routes
laufen werden Sie den Unterschied zwischen dem Verb sehen und die Aktion. In der Regel werden die Erstellungs-/Aktualisierungsaktionen beim Übermitteln eines Formulars verwendet. Dies unterscheidet sich von den neuen und bearbeiteten Aktionen, da diese zum Rendern der Ansicht verwendet werden (die das zu übergebende Formular anzeigt).
in welcher Reihenfolge heißen sie? Welchen Prozess durchläuft es? Bearbeiten -> Aktualisieren -> Bearbeiten? Wenn ich eine Weiterleitung in Bearbeitung setze, wird es nicht zum Update kommen? – Rumpleteaser
Richtig. Wenn Sie jemanden umleiten möchten * nachdem * einen Eintrag aktualisiert haben, legen Sie die Umleitung in die Aktualisierungsaktion. – theIV
Also nur 2 Ereignisse in dieser Kette: Bearbeiten, die das Formular rendert, dann aktualisieren, wenn der Benutzer es übermittelt. Wenn Sie redirect_to verwenden, um auf eine andere Seite zu wechseln (Standard ist oft die Show-Ansicht in einem Gerüst), dann haben Sie eine dritte Seite. –
Eine andere Perspektive - ein wenig redundante Ähnlichkeiten und Unterschiede hervorzuheben:
New ist die Vorstufe Aktion eine Form zu machen, dass bei der Einreichung läuft der Aktion erstellen. (die Ansicht, die typischerweise eine Liste ähnlicher Elemente zurück in die Indexansicht weitergeleitet zeigt Ihnen bereits erstellt)
bearbeiten ist die Vorstufe Aktion eine Form zu machen, dass bei der Übermittlung, läuft die aktualisieren Aktion . (die Ansicht wird normalerweise zurück in die Indexansicht umgeleitet, die eine Liste ähnlicher Elemente anzeigt, die bereits erstellt)
- 1. Rails Paperclip: update vs. update_attributes
- 2. update (edit) Benutzer in PHP
- 3. Rails Best Practices für RESTful-Controller CREATE- und UPDATE-Methoden
- 4. Restful vs Soapbased
- 5. Restful Rails "Perspektiven"?
- 6. Rails Polymorph RESTful Routing
- 7. Update User Außerhalb `Benutzer # edit` Seite
- 8. Restful vs Andere Web Services
- 9. RESTful Content Negotiation in Rails
- 10. Rails, RESTful Routing und Pluralization
- 11. Edit in Place vs. separate Bearbeitungsseite/Modal?
- 12. JAVA Restful Webservice vs PHP Restful Webservice. Der Beste?
- 13. Edit Rails Modell von der Befehlszeile
- 14. Rails Büroklammer, Edit Form file_field nicht zugewiesen
- 15. Aufschalten Methode für Standard RESTFUL Routes in Rails
- 16. Restful Befehle
- 17. Include/embed vs. Link in RESTful-APIs
- 18. Flask MethodView vs Flask-Restful Ressource
- 19. RESTful API vs Web Service API
- 20. Nuget Konsolidierung vs Update
- 21. TortoiseSVN revert vs update
- 22. Invalidate vs Update
- 23. Edit und Contiue VS2005
- 24. Update-Node & NPM VS Cordova Update 5
- 25. Rails: Wie RESTful Query-Modelle durch Assoziationen?
- 26. Rails RESTful to_xml - Wie erreicht man Verbundenheit?
- 27. Rails 3 RESTful Web-Services mit JSON
- 28. Rails RESTful Routen mit einem zusammengesetzten Schlüssel
- 29. Rails Restful-Authentication Plugin schlägt fehl
- 30. Rails Restful Authentifizierung: Kann nicht UserObserver
Ich habe Aufgaben, die in zwei verschiedene Kategorien aufgeteilt werden können. Ich habe für jede Kategorie einen Controller erstellt, der für Aufgaben mit demselben Modell verknüpft ist. Wenn ich das Bearbeitungsformular abschicke, wird es zurück zu den Hauptaufgaben geleitet, die die Controller-Aktion zeigen. Es scheint den com_tasks-Controller alle zusammen zu überspringen (com_tasks = einer der Kategorie-Controller). Ich schaute auf die HTML-Ausgabe, die gerendert wird und das Formular wird an den falschen Controller übermittelt, aber ich sehe keine Möglichkeit, das zu ändern. – Rumpleteaser