Ich habe eine Rails-Website mit i18, in dem ein Benutzer Sprache in der Menüleiste wechseln kann, 'en' und 'km' in meinem Fall.Rails Internationalisierung Sprachumschaltung No Route Matches auf Fehler Validation Form Update
Was ich von switching language Ansatz verstehe, ist das Zusammenführen des aktuellen Param mit dem Gebietsschema. 'Get' Methode ist passiert, nehme ich an.
Ich habe eine Ressource, "Produkte" zum Beispiel. Die Produktressource hat keine 'show'-Seite.
resources :products, except: [:show]
Wenn ein Produkt mit ungültigen Daten aktualisiert wird. Lassen Sie mich sagen, ich habe eine Validierung des Vorhandenseins des Namens des Produkts, aber ich lasse den Produktnamen in meinem Formular leer. Dann wird das Formular wieder in das 'Edit'-Formular gerendert, aber die' update'-Aktion, aber beachte, dass 'url' '/ products/id' ist, was genau wie 'show'-Aktion ist.
In diesem Schritt wechsle ich die Sprache. Wie erwartet, wird das Gebietsschema mit dem aktuellen Parameter zusammengeführt. Also, die 'get' Methode ist jetzt passiert mit der URL 'Produkte/ID? _method = Patch ...'
Keine Route Übereinstimmungen erhöht, da ich keine 'Show' Aktion habe.
Kann mir jemand bitte einen guten Weg vorschlagen, damit umzugehen? Ich kann dieses Problem umgehen, indem ich die "get" -Methode von "show" action an eine beliebige Stelle umleite, so wie ihre Indexseite. Wie auch immer, ich frage mich, ob es bessere Wege gibt.
Danke,
GET wurde Wie ich es verstehe, ist die Art und Weise, wie Sie erwähnt haben, einen Ort zu erhalten, Seite in diesem Fall anzeigen, sobald die Update-Informationen ungültig sind. Es ist meine Schuld, dass ich vergessen habe, etwas über das Erstellen eines neuen Objekts zu erwähnen. Es passiert wie die Aktualisierung. Also, ich fürchte, wir können keinen Platz für diesen Fall erhalten, da die URL nach der ungültigen neuen Objekt-Erstellung '/ products' ist, die genau 'index' Seite ist. –