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

Antworten:


111

Versuchen Sie es so

<%= link_to(raw("a <strong>strong</strong> link"),{:pics => true},{ :class => 'highlight'})  %>

Auf mein Beispiel angewendet wurde der Aufruf: link_to raw (Text), {: pics => true} ,: class => 'Highlight'
Ryan


28

Ab 2016 bevorzuge ich diese Methode.

<%= link_to my_path do %>
    This is a <strong>ape</strong>
<% end %>

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 %>

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})
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.