2010-02-02 6 views
8

¿Hay alguna forma de capturar la cadena de consulta y enviarla como parte de una publicación de formulario? Estoy usando Rails 2.3.5 y mi usuario está en una página que tiene múltiples parámetros de cadena de consulta. En esta página, enviarán un formulario. Dentro de la acción que recibe la publicación, quiero saber cuáles fueron esos parámetros de cadena de consulta. Obviamente, no se envían como parte de la publicación. Así que necesito los valores de formulario reales, más los parámetros de la cadena de consulta que estaban en la página cuando el usuario envió el formulario.Envíe params de querystring como parte de la publicación de formulario

Estoy seguro de que podría escribir algunos desagradables javascript que empujarían los parámetros de la cadena de consulta a campos ocultos en el formulario para que estuvieran disponibles, pero eso parece feo. Mi Google no ha aparecido demasiado, lo que me hace preguntarme si me estoy equivocando. Para empeorar las cosas, soy un novato de Rails.

Aprecie cualquier sugerencia o sugerencia para que vaya en la dirección correcta.

Respuesta

9

Un amigo mío me mostró lo que creo que es una manera más fácil:

<% form_tag params.merge(:action=>"someAction") do %> 

La fusión de parametros en la tabla hash es necesario para hacer el form_tag resolvieron el problema perfectamente.

+0

sí, eso es mejor, ya que de hecho crea la url querystring – jpwynn

+0

Cuidado: los navegadores ignoran las cadenas de consulta para las solicitudes GET, en ese caso tendrá que crear campos ocultos para cada entrada. – fny

+3

Para aclarar la declaración de @faraz: los navegadores ignoran las cadenas de consulta en la URL ** action ** para los formularios que se envían con el método GET –

5

La forma preferida sería utilizar campos ocultos. No lo he intentado, pero creo que puede especificar parámetros de cadena de consulta adicionales en los ayudantes *_path o *_url. Algo así como:

<% form_for(@post, 
      :url => post_path(@post, :foo => 'foo', :bar => 'bar')) do |f| %> 
    ... 
<% end %> 
+0

¿Qué va a hacer si yo quiero usar esto para forma compartida para editar y crear acciones? – Stiig

0
<% form_tag params.merge(:action=>"someAction") do %> 

- No hay coincidencias ruta [mensaje]

Cuestiones relacionadas