Wie zu verwenden redirect_to zu einer nicht-Schienen-URL mit query params?
Hatten wir einfach einen vorhandenen nutzen redirect_to Pause aufgrund einer Rails-upgrade, und es führte zu einer Frage. Ich habe experimentiert, und ich weiß nicht scheinen, um einen Weg finden, um redirect_to an die Nutzer zu schicken, um eine nicht-Rails-Seite mit query-Parameter angehängt, außer manuell durch den Bau der URL-Zeichenfolge, die scheint wie eine Schande. Zuvor, nur ein einfaches:
redirect_to "http://www.web.com/myurl" "parm"
war arbeiten-es angehängt "parm" auf die URL, und mehrere parms wurden ordnungsgemäß behandelt. Das ist nicht mehr der Fall ist, so Frage ich mich, ob es eine neue/bessere Möglichkeit, dies zu tun. Die docs impliziert, einschließlich eines Hash funktionieren sollte, aber es funktioniert nicht:
redirect_to ("http://www.web.com/myurl", :parm => "foo")
redirect_to ("http://www.web.com/myurl", { :parm => "foo" } )
Weder das eine funktioniert. Manuell erstellen Sie den URL-string, der funktioniert gut, aber hat jemand eine Zauberformel, macht diese Arbeit ein schöner Weg?
InformationsquelleAutor Masonoise | 2009-11-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Entsprechend der Dokumentation, alle Parameter, die nicht erkannt
url_for
werden an die Route-Module, so in der Theorie, dein code sollte funktionieren, wenn Ihre parameter überschreibt man den Standard-Strecken, die es sieht.Allerdings gibt es eine
:overwrite_params
hash, können Sie angeblich pass:Hoffe, das hilft.
Welche version von Rails verwenden Sie? Die Dinge haben sich wahrscheinlich geändert, seit 2009 🙂
versucht on rails 3.2.8, die neueste stabile glaube ich
Ich bin auch mit diesem problem in rails 3.2. Gibt es eine Möglichkeit, senden Sie die params aus der Routen.rb-Datei?
Ich glaube das Problem bezieht sich auf die übergabe eines string als ersten parameter. Ich denke, der richtige Weg in 3.2 ist
redirect_to { host: 'www.web.com/myurl', parm: 'foo' }
. Sie können probieren und sehen, ob es funktioniert?InformationsquelleAutor Topher Fangio
Rails 5.0 und fand, dass dies die einfachste Lösung:
Die einzige andere Lösung, die ich auf dieser Seite gefunden, dass gearbeitet wurde, wenn die Angabe des host (siehe Topher Fangio ' s Kommentar zu seinem eigenen post), aber dann haben Sie auch den port angeben, in dem Fall die original-url auf einem anderen port (das ist normalerweise der Fall für dev-Umgebungen).
InformationsquelleAutor fgblomqvist