【问题标题】:How do I prevent my HTML tags from getting escaped?如何防止我的 HTML 标签被转义?
【发布时间】:2016-05-15 14:39:33
【问题描述】:

我使用的是 Rails 4.2.3。我的 app/helpers/admin_helper.rb 文件中有这个……

module AdminHelper

  def menu_builder(page_id)
    tabs = ['Current Objects','Add New Object','Approve Objects']
    content = ""
    tabs.each do |tab|
      content << if page_id == tab
        content_tag('li', content_tag('a', tab, :href => nil ), :class => 'current') + " "
      else
        content_tag('li', content_tag('a', tab, :href => "/#{tab}" )) + " "
      end
    end
    content
  end

end

但在我看来,当我调用该方法时

<h1>Admin#index</h1>
<ul>
    <%= menu_builder(@page_id) %>
</ul>

HTML 被转义而不是仅仅呈现为标签。也就是说,当我查看源代码时,这就是我在页面上看到的内容……

<ul>

&lt;li&gt;&lt;a href=&quot;/Current Objects&quot;&gt;Current Objects&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;/Add New Object&quot;&gt;Add New Object&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;/Approve Objects&quot;&gt;Approve Objects&lt;/a&gt;&lt;/li&gt; 

</ul>

我需要做什么才能正确呈现我的页面?

【问题讨论】:

标签: ruby-on-rails ruby-on-rails-4 html-escape-characters


【解决方案1】:

更改menu_builder 辅助方法,使其返回content.html_safe 而不是content

html_safe 方法将字符串标记为可以安全地插入到 HTML 中而无需执行转义。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-19
    • 1970-01-01
    相关资源
    最近更新 更多