这是我的代码,我试图以.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/

10-15 10:14