2010-11-07 10 views
1

Je veux créer plus d'un formulaire avec un bouton de soumission, avec chaque bouton d'envoi ayant une action/fonctionnalités différentes à effectuer.
Comment y parvenir? Pour l'instant, tous les boutons submit utilisent la méthode create controller comme fonction d'action. Comment remplacer cela? Puis-je donner un nom à chaque bouton de soumission et rediriger l'action de chaque bouton vers une méthode différente dans son fichier de contrôleur?
Comment le faire? J'utilise le rail 3.0.1.Rails: Comment créer plus d'un formulaire avec un bouton de soumission, faisant des fonctionnalités différentes?

+0

Pour clarifier: avez-vous plusieurs formulaires avec des boutons de soumission dans chaque formulaire? Ou avez-vous un formulaire avec plusieurs boutons de soumission à l'intérieur? – codykrieger

+0

Hmmm, mon cas est de plusieurs formes dans le même modèle avec des boutons de soumission. – Hemanth

Répondre

0

Si vous utilisez la méthode form_for helper, je crois qu'il utilise le new_record? méthode sur quel que soit l'objet que vous lui transmettez pour déterminer l'action appropriée qu'il doit pointer. Par exemple:

<%= form_for @page do |f| %> 

Si @ page.new_record? évalue à true, le formulaire POST à ​​la méthode create sur PagesController. Toutefois, si elle est évaluée à false, elle sera POST à ​​la méthode de mise à jour sur le PagesController.

Vous pouvez remplacer l'URL du formulaire par faire POSTs quelque chose comme:

<%= form_for @page, :url => { :action => "my_action" } do |f| %> 

qui vous permettra d'envoyer les données de formulaire à une action personnalisée. Vous n'avez pas besoin de modifier quoi que ce soit lié aux boutons d'envoi.

Espérons que ça aide!