Tu ne peux passer des paramètres à link_to que côté-serveur, or la selection
se fait côté client.
Donc 2 solutions : soit tu fais un form et un petit peut de JavaScript pour
régir à la sélection d'un élément de la liste, soit tu fais pas de form et
un peu plus de JavaScript pour réagir à la sélection de la liste *et* faire
ton call.
Maintenant, si la 2° solution te plait (moi elle me plait) voilà comment je
procèderais pour garder les avantages du link_to et de la route générée par
Rails :
Au lieu de faire ton formulaire comme ça :
...
<select id="liste_deroulante">
<% foreach item in list -%>
<option value="<%= item.id %>"><% item.name %></option>
<% end -%>
</select>
...
Je ferais :
...
<select id="liste_deroulante">
<% foreach item in list -%>
<option value="<%= link_to item %>"><% item.name %></option>
<% end -%>
</select>
<script>
$('liste_deroulante').observe('change', function(event) {
document.location.href = $F(event.element());
event.stop();
});
</script>
...
Décryptage : tu mets dans la value des options de ton select les liens
entiers, puis tu fais surveiller un changement de valeur du select pour
envoyer le navigateur client à l'adresse de l'élément sélectionné.
L'autre solution marcherait aussi, mais elle me semble plus compliquée (par
contre elle pourrait avoir l'avantage de marcher même si le javascript est
désactivé ; en admettant que des gens désactivent encore leur JavaScript).
--
Michel Belleville
--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse [EMAIL PROTECTED]
-~----------~----~----~----~------~----~------~--~---