2010-06-21 5 views
10

So ..Ruby on Rails: Comment avoir plusieurs boutons de soumission allant à différentes méthodes

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

puis dans mon contrôleur (peut-être avec with_action?):

with_action do |a| 
    a.save do 

    end 

    a.library do 

    end 
end 

le problème est que seulement l'une des actions est invoquée ... la même pour les deux submit_tags ... une idée pourquoi? Ou comment puis-je obtenir deux boutons pour soumettre un formulaire à deux méthodes différentes?

Répondre

17

L'attribut de nom de bouton de soumission est transmis au contrôleur sous la forme params [: commit]. Donc dans votre cas:

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

J'ai fait une puts params, et il n'y a pas: engager la clé dans le hachage params ... = \ – NullVoxPopuli

+0

Qu'est-ce que le contient hash params? –

+1

Quand j'utilise: name il n'y a pas: commit. wehn je n'utilise pas: name, le: commit est le texte du bouton – NullVoxPopuli