2010-01-08 6 views
1

Comment ajouter des balises span au lien ci-dessous dans ruby?Ajouter des balises span au lien ruby?

<%= link_to (l(:button_show), {:action => 'show', :path => to_path_param(@path)}, :class => "button") %> 

Je voudrais ajouter les balises span sur le lien comme celui-ci:

<a href="/show" class="button"><span>Show</span></a> 
+0

Est-ce encore possible? – amy

Répondre

1

tout à fait possible. Le premier paramètre à link_to est juste une chaîne arbitraire, de sorte que vous pouvez le faire:

<%= link_to("<span>#{l(:button_show)}</span>", 
     {:action => 'show', :path => to_path_param(@path)}, :class => "button") %> 

Depuis link_to peut prendre un bloc pour le nom, bien que, d'une manière plus lisible pourrait être de le faire:

<% link_to({:action => 'show', :path => to_path_param(@path)}, :class => "button") do %> 
    <span><%= l(:button_show) %></span> 
<% end %> 
2

Kevin's answer fonctionnera bien. Je préfère de loin sa deuxième option (en utilisant le bloc) pour mettre une chaîne interpolée en argument. Je pourrais en fait préférer ceci:

<%= link_to content_tag(:span, l(:button_show)), {:action => 'show', :path => to_path_param(@path)}, :class => "button" -%> 

content_tag retourne simplement une chaîne HTML. Son premier argument est le nom de l'étiquette. Le second est le contenu de la balise. (Il existe une autre utilisation de bloc, mais cela compliquerait les choses ici.)

Questions connexes