2010-04-21 7 views
18

Je suis assez nouveau sur Ruby on Rails, et j'essaye de créer des boutons CSS fantaisie en utilisant la technique des "portes coulissantes". Je l'ai presque fonctionné, mais je pense qu'il doit y avoir une meilleure façon de gérer les balises pour un lien.Rails et le tag <span>

La façon dont je suis actuellement le faire:

<%= link_to '<span>New car</span>', {:action => "new"}, :class=>"button" %> 

Ce n'est pas terrible en soi, mais je voudrais savoir si c'est la meilleure façon de gérer les balises span dans RoR.

+0

Il y a différentes façons * *, mais je pense que vous utilisez le meilleur. – Ben

Répondre

35

Une autre option est la suivante:

<%= link_to content_tag(:span, 'New car'), {:action => "new"}, :class=>"button" %> 

docs

+2

Nice, cela fonctionne très bien. Vous pouvez même ajouter de petites icônes au bouton en faisant: <% = link_to content_tag (: span, 'Nouvelle voiture' + image_tag ("car_add.png")), {: action => "nouveau"},: class => "bouton"%> –

6

Si vous êtes encore curieux, voici quelques façons de réécrire votre code:

Utilisation content_tag:

<%= link_to content_tag("span", "New car"), {:action => "new"}, :class=>"button" %> 

Utilisez link_to avec un bloc:

<%= link_to {:action => "new"}, :class=>"button" do %> 
    <span>New card</span> 
<% end %> 

Et bien sûr, vous pouvez combiner les deux en mettant un content_tag à l'intérieur du bloc, mais je vais laisser au lecteur comme un exercice :)

6

Ou vous pourriez être pro et l'utilisation du nom routes/ressources + Haml. Cela ferait ressembler à:

%a{ :href => new_car_path } 
    %span New Car 

Ce que vous avez bien mais ..

+0

Un joli Jimmy. – pjammer