Chr*_*s M 6 ruby ruby-on-rails ruby-on-rails-3
这是我的代码,我试图用句子形式显示一个bboy的船员链接列表.to_sentence
<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>
Run Code Online (Sandbox Code Playgroud)
我得到的输出是正确的链接,但它显示为:
<a href="/crews/1">Hustle Kidz</a> and <a href="/crews/2">Knuckleheads Cali</a>
Run Code Online (Sandbox Code Playgroud)
而不是:
与html转义,而不是所需的链接.
我错过了什么吗?我尝试过CGI.unescapeHTML和其他一些但是迷路了......
Ale*_*vik 20
Rails 3现在自动转义所有内容,为了输出原始HTML使用:
<%= some_string.html_safe %>
Run Code Online (Sandbox Code Playgroud)
或这个:
<%= raw @some_html_string %>
Run Code Online (Sandbox Code Playgroud)
感谢macek提示.
有关其他详细信息,请访问:http://markconnell.co.uk/posts/2010/02/rails-3-html-escaping
我同意 Kleber S 的观点,你应该将其移至助手中,因为这对于视图来说有很多逻辑
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
Run Code Online (Sandbox Code Playgroud)
在你看来:
<span class="affiliation">
<%= crews_description(@bboy.crews)
</span>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4745 次 |
| 最近记录: |