2009-09-19 22 views
6

Utilizando el mismo formulario parcial en crear y editar en mi caso nuevo y vista previa. miradas parciales algo como esto (yo uso HAML)= button_to no genera formulario si ya está en otra forma

=form_tag ({:action => params[:action]}, :multipart => true) 
    =text_field :newsletter, :title 
    =text_area :newsletter, :body 
    =file_field :newsletter,:attachment 
    -if params[:action] == "preview" 
    =button_to "select contacts and send", :action => "contacts" 
    =submit_tag "save and preview" 

pero en el html-producto es

... 
<input type="submit" value="select contacts and send"/> 
<input type="hidden" value="rwYnZlEpWV4dR89zjgprEALBYmP0xqM3lnKt9JDLyak=" name="authenticity_token"/> 
<input type="submit" value="save and preview" name="commit"/> 
... 

¿Por qué el button_to no genera el botón-para formar?

una solución es mantener el botón fuera del parcial y solo 1 por formulario, pero ¿cómo puedo tener 2 botones en la misma forma?

edición: otra solución sería una casilla de verificación oculto que es fijado por el javascript, si se pulsa el button_to y envía el formulario, separándolos en el controlador

Respuesta

12

HTML en realidad no permitir formas de anidar. Algunos navegadores lo hacen, pero verán un comportamiento loco en otros. ¿El HTML muestra la salida bruta o el DOM calculado de Firebug?

La forma preferida de manejar este caso es mover su button_to fuera de la otra forma. Si está satisfecho con las opciones solo de JS, puede usar link_to :method => :post y darle un estilo al enlace para que parezca un botón.

1

Al final utilizó el

:name => 'otheraction' 

en el controlador después se comprueba si cualquiera

params[:commit] or params[:otheraction] 

fue en el hash params

Cuestiones relacionadas