我需要在我的网页标题中显示一些上标和下标字符我有一个helper方法,它可以识别下标或上标的模式,并将其转换为&sub2;或2
但是,当它显示在呈现页面的文件中时,它在源代码中显示为:
&sub2;
这是不对的我把它设置为:
<% provide(:title, raw(format_title(@hash[:page_title]))) %>
但生的不管用。如有任何帮助,我们将不胜感激。
方法:
def format_title(name)
label = name
if label.match /(_[\d]+_)+|(~[\d]+~)+/
label = label.gsub(/(_([\d]+)_)+/, '&sub\2;')
label = label.gsub(/(~([\d]+)~)+/, '&sup\2;')
label.html_safe
else
name
end
结束
我甚至试过:
str.gsub(/&/, '&')
但它回报了:
&amp;sub2;
最佳答案
您还可以使用Rails I18n实现这一点。
<%= t(:page_title_html, scope: [:title]) %>
在您各自的语言环境文件中(
title.en.yml
最有可能):title:
page_title: "Title with ²"
这是关于下标和上标的HTML symbols图表。
有关更多信息,请查看Preventing HTML character entities in locale files from getting munged by Rails3 xss protection
更新:
如果需要动态加载页面标题,首先必须安装一个gem,比如Page Title Helper。
您可以按照gem文档中的指南进行操作。
关于ruby-on-rails - 阻止Ruby将&更改为&?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38382454/