我在link_to
标记内的变量遇到了一些问题,这些变量只有在raw
包裹时才能生效。
raw
实际上意味着什么?使用它来包装标签内的字符串和变量是一个好习惯吗?
答案 0 :(得分:1)
来自官方Rails raw
文档:
此方法在不转义字符串的情况下输出。由于转义标记现在是默认的,因此当您不希望Rails自动转义标记时,可以使用此标记。如果数据来自用户的输入,则不建议这样做。
使用raw
不是一个好习惯,因为它绕过了默认的Rails输入清理。只有在你知道自己在做什么的情况下才能使用它。
如果您需要在链接中使用原始HTML,您也可以将其作为块传递。
<%= link_to root_url do %>
<span>My link</span>
<% end %>
另一种方法是使用Rails助手来清理输入。
<%= link_to content_tag(:span, "Unsafe input"), root_url %>
答案 1 :(得分:0)
raw
输出而不转义字符串
答案 2 :(得分:0)
为什么遇到问题,link_to助手接受块作为参数,你可以在link_to
助手中插入任何内容
例如:
<%= link_to 'link' do %>
<p> First paragraph </p>
<%= 'ruby string' %>
<% end %>
将产生
<a href='/link'>
<p> First paragraph </p>
ruby string
</a>