2010-06-21 4 views
10

Quindi ..Ruby on Rails: come avere più bottoni di invio di andare a metodi diversi

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

poi nel mio controller (magari con with_action?):

with_action do |a| 
    a.save do 

    end 

    a.library do 

    end 
end 

il problema è che solo una delle azioni viene invocata ... la stessa per entrambi submit_tags ... qualche idea del perché?

o come posso ottenere due pulsanti per inviare un modulo a due metodi diversi?

risposta

17

L'attributo nome pulsante di invio viene passato al controller come params [: commit]. Quindi nel tuo caso:

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

ho fatto A mette params, e non v'è una: chiave nel params hash ... = \ – NullVoxPopuli

+0

Cosa l'hash params contiene commettere? –

+1

Quando uso: nome non c'è: commit. wehn non uso: name, the: commit è il testo del pulsante – NullVoxPopuli