Comment utiliser redirect_to à un non-Rails URL de requête params?
Nous avons juste eu une utilisation actuelle de redirect_to pause à cause d'un Rails de mise à niveau, et cela a mené à une question. J'ai essayé, et je ne semble pas trouver un moyen d'utiliser redirect_to pour envoyer à l'utilisateur à un non-Rails page avec les paramètres de la requête en annexe, à l'exception manuellement la construction de la chaîne d'URL, ce qui semble être une honte. Auparavant, un simple:
redirect_to "http://www.web.com/myurl" "parm"
a travailler-il ajouté "parm" sur l'URL, et plusieurs parms ont été traitées correctement. Ce n'est plus le cas, donc je me demandais si il y a une nouvelle/une meilleure façon de le faire. Les docs implique que, y compris une table de Hachage devrait fonctionner, mais il n'a pas d':
redirect_to ("http://www.web.com/myurl", :parm => "foo")
redirect_to ("http://www.web.com/myurl", { :parm => "foo" } )
Ni l'un fonctionne. Manuellement la construction de la chaîne d'URL fonctionne très bien, mais quelqu'un aurait-il une incantation qui rend ce travail plus agréable?
OriginalL'auteur Masonoise | 2009-11-13
Vous devez vous connecter pour publier un commentaire.
Selon la la documentation, tous les paramètres qui ne sont pas reconnus par
url_for
sont passés sur la Route des modules, donc, en théorie, votre code devrait fonctionner, sauf si votre paramètre remplace l'un de ceux par défaut qu'il recherche.Cependant, il y a un
:overwrite_params
de hachage que vous pouvez soi-disant pass:Espère que cette aide.
Quelle est la version de Rails utilisez-vous? Les choses ont très probablement changé depuis 2009 🙂
essayé sur des rails 3.2.8, la dernière version stable je crois
J'ai aussi eu ce problème dans les rails 3.2. Est-il possible d'envoyer les paramètres à partir de la routes.rb fichier?
Je crois que le problème est lié au passage d'une chaîne en tant que premier paramètre. Je pense que la bonne façon 3.2 est
redirect_to { host: 'www.web.com/myurl', parm: 'foo' }
. Pouvez-vous donner un essai et voir si cela fonctionne?OriginalL'auteur Topher Fangio
Rails 5.0 et trouvé que c'était la solution la plus simple:
La seule autre solution que j'ai trouvé sur cette page qui a travaillé était lors de la spécification de l'hôte (voir Topher Fangio des commentaires sur son propre post), cependant, alors vous devez également spécifier le port dans le cas où l'url d'origine est sur un port différent (ce qui est généralement le cas pour les environnements de dev).
OriginalL'auteur fgblomqvist