在Rails的link_to主体中嵌入HTML


70

在使用link_to方法生成的链接的主体中获取嵌入式HTML的最佳方法是什么?

我基本上想要以下内容:

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

我一直在尝试按照Rails和<span>标记中的建议进行操作但是没有运气。我的代码如下所示:

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

Answers:


111

这样尝试

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

以我的示例为例,调用变为:link_to raw(text),{:pics => true},:class =>'highlight'–
Ryan

57
= link_to "http://www.example.com" do
   <strong>strong</strong>

2
好的,我只是:<%= link_to destroy_user_session_path, method: :delete do %>
Krzysztof Szewczyk

28

从2016年开始,我更喜欢这种方法。

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

6
我认为应该 <%= link_to my_path do %> This is a <strong>ape</strong> <% end %>
15

17

您可以使用 html_safe

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

4

不知道这是否是最好的方法。

但是我在content_tag调用中加入了很多视图助手方面非常成功。

调用.html_safe也可能不会有害

link_to(content_tag(:span, "Show yada " + content_tag(:strong, "Pictures")), {:pics => true})
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.