2009-04-03 10 views
28

Esto debería ser simple, pero parece que no puedo encontrar una respuesta fácil.Pasar los valores de param a redirect_to como cadena de consulta en raíles

¿Cómo puedo pasar los valores de param de la solicitud actual a un redirect_to call? Tengo algunos valores de la forma que me gustaría pasar a la cadena de consulta de un GET redirigir

me gustaría hacer algo como:

redirect_to @thing, :foo => params[:foo] 

y enviadas a:

http://things/4?[foo][key1]=val1&[foo][key2]=val2 

¡Gracias!

Además, ¿cómo podría manejarse esto para redireccionar_ a: volver?

redirect_to :back, :foo => params[:foo] 

Respuesta

38

La forma de redirect_to 'Record' utiliza el segundo argumento sólo para el estado de respuesta. Deberá usar otra forma de redirect_to, como la forma 'String'. e.g .:

redirect_to thing_path(@thing, :foo => params[:foo]) 

que funcionarán para los parámetros anidados params[:foo] como usted mencionó. O, como a Drew comentó a continuación, puede utilizar polymorphic_url (o _PATH):

redirect_to polymorphic_path(@thing, :foo => params[:foo]) 
4

Para añadir a la respuesta de Jordan:

Si usted no sabe qué tipo de objeto @thing podría ser, puede utilizar el método universal polymorphic_url. Este es el método que se llama internamente cuando se pasa un objeto al redirect_to de todos modos.

Cuestiones relacionadas