如何防止我的 HTML 标签被转义?
How do I prevent my HTML tags from getting escaped?
我正在使用 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>
<li><a href="/Current Objects">Current Objects</a></li> <li><a href="/Add New Object">Add New Object</a></li> <li><a href="/Approve Objects">Approve Objects</a></li>
</ul>
我需要做什么才能正确呈现我的页面?
更改 menu_builder
辅助方法,使其 returns content.html_safe
而不是 content
.
html_safe
方法将字符串标记为可以安全地插入 HTML 而无需执行转义。
我正在使用 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>
<li><a href="/Current Objects">Current Objects</a></li> <li><a href="/Add New Object">Add New Object</a></li> <li><a href="/Approve Objects">Approve Objects</a></li>
</ul>
我需要做什么才能正确呈现我的页面?
更改 menu_builder
辅助方法,使其 returns content.html_safe
而不是 content
.
html_safe
方法将字符串标记为可以安全地插入 HTML 而无需执行转义。