2010-06-21 18 views
10

Así que ..Ruby on Rails: Cómo tener varios botones de envío de ir a diferentes métodos

<%= submit_tag 'Save', :name => 'save' %> 
<%= submit_tag 'Save to Library', :name => 'library' %> 

entonces en mi controlador (quizás con with_action?):

with_action do |a| 
    a.save do 

    end 

    a.library do 

    end 
end 

el problema es que sólo una de las acciones se invoca ... la misma para ambos submit_tags ... ¿Alguna idea de por qué?

o cómo puedo obtener dos botones para enviar un formulario a dos métodos diferentes?

Respuesta

17

El atributo de nombre del botón de envío se pasa al controlador como params [: confirmar]. Así, en su caso:

if params[:commit] == "save" 
end 
+0

hice un puts params, y no hay una: clave en el params de hash ... = \ – NullVoxPopuli

+0

¿Qué contiene el hash params comprometerse? –

+1

Cuando uso: nombre no hay: confirmar. wehn no uso: name, the: commit es el texto del botón – NullVoxPopuli