0

看法

<%= auto_link(simple_format(strip_tags(@string))) %>

"strip_tags" 删除里面的全部内容<>

我怎样才能用&lt;&gt;代替它们?

有什么功能可以做到吗?我的意思是我想逃避@string

4

3 回答 3

2

使用h辅助功能:

<%= auto_link(simple_format(h(@string))) %>
于 2013-06-01T21:21:58.163 回答
1

试试这个:
添加以下内容app/helpers/application_helper.rb

module ApplicationHelper
  include ActionView::Helpers::OutputSafetyHelper

  def raw_strip(text)
    raw(text).gsub('<', '&lt;').gsub('>', '&gt;')
  end
end

然后,raw_strip(@string)在您的视图中使用。

于 2013-06-01T21:14:52.570 回答
1

只需使用 h() 方法,如下例所示:

puts h("is a > 0 & a < 10?")

产生以下输出:

is a &gt; 0 &amp; a &lt; 10?

注意:如果您在控制台上执行此操作,则必须执行一些额外的步骤:

require "erb"
include ERB::Util
于 2013-06-01T21:22:57.333 回答