2010-12-07 17 views
0

Est-il possible de définir dynamiquement l'emplacement auquel vous souhaitez soumettre un formulaire à l'exécution avec un formulaire_tag? Ce que j'ai est une vue partielle partagée qui est utilisée pour filtrer les données sur plusieurs écrans. La vue contient plusieurs champs de formulaire différents et un bouton de soumission, de sorte que l'interface utilisateur de ces contrôles est la même pour tous les écrans qui l'utilisent, donc la vue partielle partagée. La différence est que je veux que l'envoi retourne à un endroit différent en fonction de la page dans laquelle la vue partielle est contenue. Y a-t-il un moyen de transmettre la destination via la balise de rendu comme suit?Paramètre dynamique de la destination d'envoi form_tag

<%= render 'shared/event_filter', :dest => event_path %> 

puis de le consommer dans la vue partielle comme suit?

<%= form_tag(:dest, :method => "get") do %> 

Le code ci-dessus ne fonctionne pas, il me donne une erreur de nomethod sur: dest dans le form_tag, mais je mettais juste à cette question pour illustrer ce que je voulais faire.

Toute aide/suggestion serait appréciée.

Répondre

0

Je pense que vous cherchez peut-être quelque chose le long de ces lignes:

<%= render :partial => 'shared/event_filter', :locals => {:form_action => event_path} %> 

Ce qui rend juste le nom shared/_event_filter.html.erb et passe partielle dans une variable appelée form_action avec une valeur de event_path.

Puis dans votre partie:

<%= form_tag form_action, :method => "get" do %> 
    <!-- snip --> 
<% end %>