Ich versuche, den besten Weg zu bestimmen, Formularübergaben und Routing zu handhaben.Rails 5 Routing und Formularübergabe
Ich habe den Standard _form.html.erb sowie new.html.erb und edit.html.erb - jeder macht form
, subscription = @subscription
, die in der new
und edit
Controller deklariert Aktion.
Das Modell ist subscription
, und das ist mein form
Element in _form.html.erb (es im checkout
Namespace ist) -
<%= form_for([:checkout, subscription]) do |f| %>
/checkout/subscriptions/new
die URL für ein neues Abonnement ist. Wenn Sie das Formular absenden, wird es an /subscriptions
gesendet.
Das Problem ist, dass, wenn es Fehler gibt, und Sie den Browser aktualisieren (ich weiß, dass Benutzer dies aus dem einen oder anderen Grund tun), erhalten Sie eine Fehlermeldung, weil keine Ansicht für /subscriptions/index
(ich brauche nicht ein).
Gleiches gilt für die Bearbeitung. Wenn Sie zum Beispiel (/checkout/subscriptions/14/edit
) gehen, ist alles super. Aber wenn Sie das Formular senden, wird es auf /subscriptions
- das gleiche Problem wie mit neuen - Wenn Sie die Seite aktualisieren, erhalten Sie die keine Ansicht Fehler. So behandelt Rails es mit einem neuen Gerüst.
Also meine Fragen sind:
- , was die URL soll ich in dem
form_for
Tag verwenden? - Was sollte ich für das Routing tun?
- und wie kann ich diesen Fehler beim Aktualisieren der Seite vermeiden?
Das tat es @max - danke. Es kam mir nie in den Sinn, mehrere Routen für die gleiche Controller-Aktion zu haben. – Steve
Das ist eine schöne Erklärung. Freu dich auf dich. Prost! – Aashish