Ruby / Rails - 有一种简单的方法可以制作硬编码的HTML符号html_safe吗?

时间:2011-06-01 21:49:19

标签: ruby-on-rails-3 html-safe

在我看来,我想在链接中显示一些正确的双角引号。

在Rails 3之前,这有效:

<%= link_to "&raquo; #{@category.name}", some_path %>

如果我想将&raquo;指定为html_safe但不指定链接文本的其余部分,我该怎么办?

换句话说,我想要这样做:

<%= link_to "&raquo; #{@category.name}".html_safe, some_path %> 我不希望@category.name被视为html_safe。

这会产生所需的结果:

<%= link_to "&raquo;".html_safe + " #{@category.name}", some_path %>

但是,如果我这样做:

<%= link_to "#{@category.name}" + "&raquo;".html_safe, some_path %>

角度报价的输出不视为安全。我在页面上看到&raquo;而不是»。

为什么?

我尝试将"&raquo;".html_safe提取到具有相同结果的辅助方法。

有没有办法在Rails 3中轻松地将硬编码文本/符号指定为HMTL安全?

感谢。

2 个答案:

答案 0 :(得分:3)

在这种情况下,我经常明确地逃避不安全的部分:

"&raquo; #{h @category.name}".html_safe

答案 1 :(得分:0)

你需要确保整个字符串是html_safe ...

我建议试试这个:

   "&raquo; #{h @cagegory.name}".html_safe