Sur certaines pages non-formulaire, j'ai quelques liens qui auraient l'air mieux comme un bouton qu'un hyperlien ...
Je pensais que button_to au lieu de link_to fonctionnerait, mais buton_to semble toujours être traité comme un post.
Existe-t-il un moyen simple de remplacer simplement un lien (non soumis) par un bouton?
Tout ce que vous avez à faire est d'ajouter un :method => "get"
à la fin de votre bouton_à pour le traiter comme un lien
Utilisant un users_path
<%= button_to "BUTTON: link version", users_path, :method => "get" %>
Ou au lieu d'insérer un formulaire dans votre code HTML (ce que fait réellement button_to), vous pouvez utiliser la méthode de nettoyage (du point de vue de la conception Web) et en fait simplement styliser le lien de manière à le faire ressembler à un bouton. plusieurs avantages
Voici un excellent article sur la façon de le faire et voici un petit extrait de ce code, cela dépend vraiment de jouer avec la bordure, le rembourrage et l'image d'arrière-plan
a.button {
background: transparent url('bg_button_a.gif') no-repeat scroll top right;
color: #444;
display: block;
float: left;
font: normal 12px arial, sans-serif;
height: 24px;
margin-right: 6px;
padding-right: 18px; /* sliding doors padding */
text-decoration: none;
}
Le code provient du lien ci-dessus. Quelle que soit la méthode que vous choisissez devrait fonctionner correctement, profitez-en!
Je pense que tout ce que vous voulez ici, c'est la vue juste. et si tel est le cas, vous pouvez simplement ajouter une classe à l'objet de classe dans le lien
<%= link_to 'Add Class', new_subject_path, class: "btn btn-primary"%>
J'ai récemment dû le faire parce que mon formulaire agissait différemment pour link_to qu'il ne l'était avec button_to et j'avais besoin des fonctionnalités fournies par le lien. La meilleure solution que j'ai trouvée n'utilise pas du tout de CSS mais appelle plutôt .html_safe pour échapper le code html dans le code Ruby et afficher correctement le lien sous forme de bouton. Ce que vous voulez faire est le suivant:
<%= link_to "<button>This is a button</button>".html_safe, some_path, :id => "button_id", :class => "button_class" %>
En changeant link_to
à button_to
est tout ce dont j'avais besoin.