web-dev-qa-db-fra.com

HTML incorporé dans le corps de link_to dans Rails

Quelle est la meilleure façon de faire pour incorporer du HTML dans le corps d'un lien généré avec la méthode link_to?

Je veux essentiellement ce qui suit:

<a href="##">This is a <strong>link</strong></a>

J'ai essayé de m'y prendre comme suggéré dans Rails et la balise <span> mais sans succès. Mon code ressemble à ceci:

item_helper.rb

def picture_filter
    #...Some other code up here
    text = "Show items with " + content_tag(:strong, 'pictures')
    link_to text, {:pics => true}, :class => 'highlight'
end

item_view.html.erb

 #...
 <%=raw picture_filter %>
 #...
67
Ryan

Essayez-le de cette façon

<%= link_to(raw("a <strong>strong</strong> link"),{:pics => true},{ :class => 'highlight'})  %>
110
Valdis
= link_to "http://www.example.com" do
   <strong>strong</strong>
53
mark

Depuis 2016, je préfère cette méthode.

<%= link_to url: my_path do %>
    This is a <strong>ape</strong>
<% end %>
25
GorillaApe

vous pouvez utiliser html_safe

<%= link_to ("<i class='someIcon'></i> Link").html_safe %>
16
Syed

Je ne sais pas si c'est la meilleure façon.

Mais j'ai réussi à jalonner de nombreux assistants d'affichage dans l'appel content_tag.

L'appel d'un .html_safe peut également ne pas nuire.

link_to(content_tag(:span, "Show yada " + content_tag(:strong, "Pictures")), {:pics => true})
4
Burningpony