在rails_to中的Ruby on rails raw标签

时间:2015-07-16 16:35:46

标签: ruby-on-rails ruby

我在link_to标记内的变量遇到了一些问题,这些变量只有在raw包裹时才能生效。

raw实际上意味着什么?使用它来包装标签内的字符串和变量是一个好习惯吗?

3 个答案:

答案 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输出而不转义字符串

raw docs

答案 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>