Eingebettetes HTML in link_to body in Rails

70

Was ist der beste Weg, um eingebettetes HTML in den Text eines mit der link_to-Methode generierten Links zu integrieren?

Grundsätzlich möchte ich Folgendes:

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

Ich habe versucht, dies wie in Rails und dem <span> -Tag vorgeschlagen zu tun, aber ohne Glück. Mein Code sieht folgendermaßen aus:

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 %>
 #...
Ryan
quelle

Antworten:

111

Versuchen Sie es so

<%= link_to(raw("a <strong>strong</strong> link"),{:pics => true},{ :class => 'highlight'})  %>
Valdis
quelle
Auf mein Beispiel angewendet wurde der Aufruf: link_to raw (Text), {: pics => true} ,: class => 'Highlight'
Ryan
57
= link_to "http://www.example.com" do
   <strong>strong</strong>
Kennzeichen
quelle
2
ok ich habe gerade:<%= link_to destroy_user_session_path, method: :delete do %>
Krzysztof Szewczyk
28

Ab 2016 bevorzuge ich diese Methode.

<%= link_to my_path do %>
    This is a <strong>ape</strong>
<% end %>
GorillaApe
quelle
6
Ich denke, es sollte <%= link_to my_path do %> This is a <strong>ape</strong> <% end %>
timlentse
17

Sie können verwenden html_safe

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

Ich bin mir nicht sicher, ob dies der beste Weg ist.

Es ist mir jedoch sehr gelungen, viele der Ansichtshelfer im Aufruf von content_tag abzustecken.

Es kann auch nicht schaden, eine .html_safe aufzurufen

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