en un form_remote_tag con dos posibles opciones, por que siempre sale la
primera opcion pulsada?
<%= form_remote_tag( :url => { :action => “mailing” } ) -%>
<%= text_field :mailing, :email -%>
<%= submit_tag “Alta”, :name => “submit” -%>
<%= submit_tag “Baja”, :name => “submit” -%>
case params[:submit]
when “Alta”
@pulsado = “Alta”
when "Baja"
@pulsado = "Baja"
end
log
Parameters: {“mailing”=>{“email”=>“xcxcxcxc@em”}, “submit”=>“Alta”,
“action”=>“mailing”, “controller”=>“v1”}
Parameters: {“mailing”=>{“email”=>“xcxcxcxc@em”}, “submit”=>“Alta”,
“action”=>“mailing”, “controller”=>“v1”}
El problema es que al serializar el formulario coge el primer submit que
le aparece…, de todos modos si lo que quieres es que realmente se
hagan dos cosas diferentes según el boton deberÃas tener dos acciones
separadas en el controlador y sustituir los submits por botones que
lanzan el formulario con javascript a la acción a la que quieres ir…
Ten en cuenta que tu código genera algo parecido a esto en el
form_remote_tag
new Ajax.Request(’/nombre_controlador/mailing’, {asynchronous:true,
evalScripts:true, parameters:Form.serialize(this)}); return false;
Una posible opción es que el javascript de cada botón lo generes con
remote_function (acepta las opciones de form_remote_tag) y los
parámetros adecuados para ir a cada acción.
Sustituyendo el form_remote_tag por un form_tag podrÃa quedar algo asÃ:
<% form_tag do -%>
<%= text_field :mailing, :email -%>
<%= button_to_function(“Alta”, remote_function(:url => {:action =>
“alta_mailing”}))-%>
<%= button_to_function(“Baja”, remote_function(:url => {:action =>
“baja_mailing”}))-%>
<% end -%>
Tan solo te restarÃa crear las acciones alta_mailing y baja_mailing…
Espero que te sirva.
Salu2