Haml: link_to vs button_to
De ce que je comprends, link_to
est utilisé pour obtenir des méthodes, et button_to
est utilisé pour les méthodes post.
D'autre part, on m'a dit qu'avec HTML5 sémantique, <button>
est utilisé pour tout type de cliquable...eh bien, bouton. Dans le cas que j'ai un bouton cliquable qui envoie un utilisateur à un formulaire à remplir, dois-je créer un button_to
ou un link_to
?
OriginalL'auteur Karan | 2012-04-29
Vous devez vous connecter pour publier un commentaire.
C'est plus simple que vous le pensez.
Que sont les méthodes de Rails d'aides et de ne rien avoir à faire avec haml.
Oui, la méthode consiste pour l'obtenir et l'autre pour les méthodes post. Si vous avez besoin d'afficher toutes les données de contrôleur, utilisez
button_to
(par exemple lors de la suppression d'un enregistrement). Sinon,link_to
est assez.En outre, vous pouvez faire
link_to
l'affichage des données à l'aide:method
paramètre:De répondre à votre question, utilisez
link_to
.method: 'post'
pasdata-method: 'post'
pour le lienOriginalL'auteur
Vous devrait utilisez des liens de l'utilisateur à une ressource, comme un article.
Mais vous ont tendance à utiliser boutons à point à une action(comme "Créer"/"Envoyer" sur votre page d'édition). Si ce n'est pas d'accord avec votre interface -- style comme comme un lien.
Voici pourquoi: vous ne pouvez pas point de votre utilisateur à l'une quelconque non-GET action via
link_to
si il manque de la prise en charge de javascript. Ainsi, les boutons sont les seules options pour faire de votre envoi/détruire l'action déclenchée dans ce cas.N'hésitez pas à utiliser les deux approches si votre lien pointe vers une page qui conduit finalement à une modification d'une ressource (lien/bouton pour modifier/créer une page qui affiche un formulaire), comme dans votre cas.
OriginalL'auteur
Si vous voulez simplement envoyer un utilisateur à quelque part, c'est d'obtenir la demande. Donc, vous devriez utiliser link_to dans ce cas. Par ailleurs, vous pouvez utiliser le link_to pour les requêtes post et d'autres demandes (comme button_to trop) si vous indiquez :la méthode. Par exemple:
=link_to "some path", some_path, :method => :get
OriginalL'auteur
La principale différence de principe entre le
#link_to
, et#button_to
est que le#link_to
crée un lien tagA
, et rend simple requête AJAX sans données supplémentaires, tandis que#button_to
crée unFORM
avec une coutume de données, de sorte que le formulaire peut être utilisé pour faire étendu à une requête AJAX vers un serveur web. Les données du formulaire comporte des CSRF token, qui est utilisé pour l'authentification de la demande. En cas de#link_to
CSRF token doit être serualized et les envoyer dans deson_click
événement.OriginalL'auteur