Pregunta

El comportamiento propongo:

Un usuario carga hasta mis "Búsqueda", www.site.com/search, tipos de su consulta en un formulario, hace clic en Enviar, y luego termina en www.site.com/search/the+query en lugar de www .site.com / search? q = + la consulta. He pasado por una gran cantidad de la documentación ya los pilones y acaba de terminar la lectura de la documentación Rutas y me pregunto si esto puede / debe suceder en la capa de Rutas. Ya he creado mi solicitud para realizar una búsqueda cuando se administra www.site.com/search/the+query, pero no puedo encontrar la manera de enviar un formulario para este destino.

O es algo que debería ocurrir dentro de un controlador con un redirect_to ()?

o en otro lugar?

Seguimiento:

Esto es menos de un "escrito en piedra" deseo real en este momento y más una curiosidad para la lluvia de ideas futuras características. Estoy diseñando una aplicación que utiliza un vertedero de Wikipedia y han observado que cuando un usuario realiza una búsqueda en Wikipedia y la búsqueda no es demasiado ambigua redirecciona directamente a través de un enlace: en.wikipedia.org/wiki/Apple. En realidad, se está realizando un paso de redireccionamiento en el medio de HTTP 302, y yo soy sólo curiosidad si hay una forma más elegante / linda de hacer esto en los pilones.

¿Fue útil?

Solución

Puede enviar cualquier contenido que desee para cualquier URL, pero si quieres una URL concreta que aparezca en la barra de direcciones del navegador, usted tiene que utilizar un redireccionamiento. Esto es independiente de si utiliza los pilones, Django o rieles en el lado del servidor.

En el manejo de /search (si POST o GET), que normalmente se ejecute la consulta en la parte de atrás, y si sólo había un resultado de la búsqueda (o un resultado abrumadoramente relevante) que le redirigir a ese resultado, de lo contrario a una página que muestra enlaces a los mejores resultados N. Eso es sólo una práctica normal, que yo sepa.

Otros consejos

formularios HTML están diseñados para ir a una dirección URL específica con una cadena de consulta (?q=) o un órgano equivalente en un POST - o bien se escribe inteligente y sutil Javascript para interceptar el envío del formulario y volver a escribir en su extraña manera preferente, o utilizar redirect_to (y la última tendrá algo de trabajo).

Pero ¿por qué necesita este tipo de comportamiento extraño en lugar de simplemente siguiendo el estándar ?! Por favor, explique su caso de uso en términos de necesidades a nivel de aplicación ...!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top