Un link_to
va toujours mettre les arguments dans la chaîne de requête car il crée un lien HTML get style - même si vous mettez :method => :post
que juste un argument ajoute supplémentaire (« spécial ») _method
. Ce que je pense que vous voulez vraiment est un lien button_to
- ce qui en fera une sorte de formulaire-post. Il fonctionne à la place, mais il indique button_to
(par exemple, button_to 'My link', path(:params => :go_here)
) L'inconvénient est qu'il ressemblera à un bouton, mais vous pouvez lui donner une classe CSS (par exemple "unbutton"), puis changer le style sur cette classe CSS Sinon, si ce que vous voulez réellement, c'est que params
ne soit pas du tout transmis au contrôleur ... alors ne les incluez pas lors de la création de votre lien (par exemple, link_to "My link" path
- il n'y a pas besoin de :post
si vous ne voulez pas publier de contenu params
)
Enfin, si ce que vous voulez pour le params
de devenir une partie de l'URL (par exemple,., etc.), vous devez ensuite mettre à jour vos itinéraires pour inclure ces paramètres en tant qu'options. Jetez un oeil à la section de routage de la rdoc pour savoir comment faire.
Cette solution m'a pris des heures de googling! Je suis nouveau à Rails. button_to a résolu mon problème. Merci beaucoup! – Will
Mise à jour sur ce point: 4.1 expédie button_to avec un paramètre params (avec le gotch qu'il n'autorise pas les paramètres imbriqués, * dough *), où les paramètres sont vraiment construits en utilisant des champs cachés. C'est probablement ce que vous voulez. – Felix
Neato ... bien - mon conseil est toujours là pour les Rails passés, mais bon de voir qu'ils ont finalement trouvé une solution. –