这是我的代码,我试图以.to_sentence的句子形式显示指向bboy的工作人员的链接列表
<span class="affiliation">
<% if(@bboy.crews.count > 0)%>
<span><%= if(@bboy.crews.size > 1) then "Crew".pluralize else "Crew" end %>:</span>
<%= @bboy.crews.collect{|c| link_to c.name, c}.to_sentence %>
<% else %>
<em>Independent</em>
<% end %>
</span>
我得到的输出是正确的链接,但显示为:
<a href="/crews/1">Hustle Kidz</a> and <a href="/crews/2">Knuckleheads Cali</a>
而不是:
与HTML转义,而不是所需的链接。
我想念什么吗?我已经尝试过CGI.unescapeHTML和其他一些,但是迷路了...
最佳答案
我同意Kleber S的观点,您应该将其转移到帮助程序中,因为对于 View 而言,这有很多逻辑
def crews_description(crews)
if crews.empty?
content_tag('em', 'Independent')
else
label = "Crew"
label = label.pluralize if crews.size > 1
crews_links = crews.map {|crew| link_to(h(crew.name), crew)}.to_sentence
content_tag('span', label) + crews_links.html_safe
end
end
并且在您看来:
<span class="affiliation">
<%= crews_description(@bboy.crews)
</span>
关于ruby-on-rails - Ruby on Rails似乎正在自动转义由link_to创建的html,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5434767/