2011-06-14 8 views
6

Estoy intentando agregar un botón/página de "vista previa" a mi aplicación.¿Es posible agregar un valor a un botón de envío que se pasa en los params?

¿Hay alguna manera de agregar un valor diferente a mis botones de envío "publicar" y "previsualizar" que pasan en el hash de params para poder verificar cuál se presionó en el controlador y representar la vista en consecuencia?

¿Es esta la mejor manera de hacerlo?

Respuesta

8

Las claves de la params hash son sólo el valor name de un elemento.

Si tuviera dos botones denominados "enviar", uno con value="post" y value="preview", entonces se podría hacer algo como:

if params[:submit] == "preview" 
+1

Esta solución es mucho mejor. No sabía que podrías hacer esto. –

+1

Solo mensajes de texto y funciona a la perfección. ¡Gracias! – Jon

3

Puede agregar un evento de clic de botón con javascript que llenará un valor oculto y lo pasará junto con el resto de sus parámetros. Si el uso de jQuery:

$("#post_button").click(function() { 
    $("#form_action").val("post"); 
}); 

$("#preview_button").click(function() { 
    $("#form_action").val("preview"); 
}); 

Se podría entonces acceder a la acción en su controlador usando params['form_action']

Cuestiones relacionadas