Question

Le comportement que je propose:

A charge de l'utilisateur ma page « recherche », www.site.com/search, types leur requête dans un formulaire, clics soumettre, et se termine ensuite à www.site.com/search/the+query au lieu de www .site.com / search? q = la requête +. Je suis passé par beaucoup de la documentation Pylônes déjà et vient de terminer la lecture de la documentation Routes et je me demande si cela peut / devrait se produire à la couche Routes. Je l'ai déjà mis en place ma demande d'effectuer une recherche lorsque donné www.site.com/search/the+query, mais ne peut pas comprendre comment envoyer un formulaire à cette destination.

Ou est-ce quelque chose qui devrait se produire à l'intérieur d'un contrôleur avec un redirect_to ()?

Ou ailleurs?

Followup:

Ceci est moins une réelle « dans la pierre » désir en ce moment et plus une curiosité pour les remue-méninges caractéristiques futures. Je suis la conception d'une application qui utilise une décharge de Wikipedia et ont observé que lorsqu'un utilisateur effectue une recherche sur Wikipedia et la recherche n'est pas trop ambigu il redirige directement à un lien de l'article: en.wikipedia.org/wiki/Apple. Il effectue en fait un en HTTP entre 302 étape de redirection, et je suis juste curieux de savoir s'il y a un moyen plus élégant / mignon de le faire dans Pylônes.

Était-ce utile?

La solution

Vous pouvez envoyer tout le contenu que vous voulez pour une URL, mais si vous voulez une URL particulière apparaisse dans la barre d'adresse du navigateur, vous devez utiliser une redirection. Ceci est indépendant du fait que vous utilisez Pylons, Django ou Rails sur le côté serveur.

Dans le traitement des /search (que ce soit POST ou GET), on pourrait normalement exécuter la requête dans l'arrière, et s'il n'y avait qu'un seul résultat de la recherche (ou un résultat extrêmement pertinent) vous rediriger vers ce résultat, autrement une page montrant des liens vers les meilleurs résultats N. C'est juste pratique normale, autant que je sache.

Autres conseils

formulaires HTML sont conçus pour aller à une URL spécifique avec une chaîne de requête (?q=) ou un organisme équivalent dans une POST - soit vous écrire Javascript intelligent et subtil pour intercepter la soumission du formulaire et récrire dans votre façon bizarre préféré, ou utiliser redirect_to (et ce dernier prendra un certain faire).

Mais pourquoi avez-vous un tel comportement bizarre plutôt que juste après la norme ?! S'il vous plaît expliquer votre cas d'utilisation en termes de besoins au niveau de l'application ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top