Rails 3 link_to générateur pour: post,: put, & amp; :effacer?
J'ai récemment rencontré ce problème: Rails 3 link_to (:method => :supprimer) ne fonctionne pas
Dans lequel j'ai été confondu pourquoi mon link_to 'test', test_path(:test => test), :method => :post
ne fonctionnait pas (pourquoi il Se faisait plutôt que de l'Affichage). Comme le post ci-dessus le suggère, c'était parce que je n'ai pas les Rails des fichiers javascript, qui gère de façon dynamique faisant le formulaire à la volée pour :post
:put
& :delete
.
Je ne suis pas sûr que j'aime particulièrement en s'appuyant sur javascript pour faire cela pour moi, comme je tiens mon appli pour être pleinement fonctionnel avec le javascript désactivé; c'est la façon dont j'aime à développer (donc je sais que j'ai tous mes Rails de programmation fonctionnalité fonctionne correctement), et quand je fais le fil de mon appli avec javascript, je n'ai pas à vous soucier de dupliquer cette fonctionnalité, car j'ai l'habitude d'essuyer le stock javascripts fichier généré par les Rails.
J'ai lu quelque part que, techniquement, liens (anchor éléments) ne devrait vraiment être utilisé pour les requêtes GET, et que les boutons (dans le cadre des éléments de formulaire) doit être utilisé pour les autres méthodes.
Donc, mes deux questions:
- Est-il un bijou qui va réécrire tout
link_to ... :method =>
à mon avis, à un élément de formulaire à la volée lors de mes points de vue sont rendus? - Si non, comment pourrais-je le crochet dans le point de vue de l'analyseur d'écrire mon propre? (à l'aide de HAML, de préférence)
Essentiellement, ce que je voudrais, c'est d'écrire dans mon HAML fichier:
= link_to 'Test Link', some_path(:with => some_resource), :method => :post
... et mon rendu de la sortie HTML de sortir avec ce:
<form action="some_path?with=some_resource" method="post">
<!-- insert appropriate _method hidden field here -->
<!-- add appropriate csrf token and whatnot -->
<button type="submit">Test Link</button>
</form>
... afin que tous les link_to
aides avec les méthodes définies (donc, ne pas affecter plaine des liens dont le verbe est d'OBTENIR) de travail sans javascript?
Je voudrais aussi apprécier toutes les pensées au sujet de la pourquoi partie de cette question, précisément pourquoi les Rails de l'équipe a décidé de garder cette fonctionnalité liée à javascript plutôt que de faire de cette pure HTML?
source d'informationauteur neezer
Vous devez vous connecter pour publier un commentaire.
Il semble que vous voulez vraiment un simple élément de formulaire (dans ce cas, un bouton). Si donc, vous voulez le
button_to
helper:button_to 'Test Link', some_path(:with => some_resource), :method => :post
Cela va générer un formulaire avec un
input[type=submit]
élément à l'intérieur d'elle.Sans Javascript, vous ne pouvez pas avoir un lien hypertexte qui le soumettra à l'aide d'un verbe HTTP autres que GET."
Si vous avez besoin de plus de style /de contrôle de la forme en cours de rendu par
button_to
vous pouvez faire quelque chose comme ceci: