这是我想要的字符串:
<a href="/pugs/1-baxter">Baxter</a> and <a href="/pugs/2-sofia">Sofia</a>
这是我用来输出的代码:
<%= @pugs.collect {|p| link_to(p.name, pug_path(p))}.to_sentence %>
不幸的是输出被编码:
<a href="/pugs/1-baxter">Baxter</a> and <a href="/pugs/2-sofia">Sofia</a>
我已尝试使用html_safe
和raw
,但它们似乎没有任何影响。
答案 0 :(得分:4)
从Rails 5开始,有to_sentence
视图帮助程序(与Array#to_sentence
不同)执行此操作。
来自the docs:
to_sentence (array,options = {})
将数组转换为逗号分隔的句子,其中最后一个元素由 连接器字。这是ActiveSupport的html_safe感知版本 阵列#to_sentence。
使用它:<% to_sentence(@pugs.collect {|p| link_to(p.name, pug_path(p))}) %>
答案 1 :(得分:2)
<%= @pugs.collect {|p| link_to(p.name, pug_path(p))}.to_sentence.html_safe %>
答案 2 :(得分:1)
您可以将其包装在一个范围内并使用帮助器:
def content_link_to(name,path=nil,options=nil)
content_tag :span do
link_to name, path, options
end
end
使用如下:
<%= @pugs.collect {|p| content_link_to(p.name, pug_path(p))}.to_sentence %>