【问题标题】:How do I output a superscript 2 from a helper in Rails 3.2?如何从 Rails 3.2 中的助手输出上标 2?
【发布时间】:2012-04-25 19:14:14
【问题描述】:

我想从 '30 Meters2' 之类的助手中输出一个字符串(但带有上标 2)。

上标 2 的 HTML 实体是 ²,所以我认为这样的事情会起作用:

"30 Meters " + raw("²")

但它不起作用。

我该怎么做?

这是整个方法:

  def area_conversion(feet, project)
    if project.metric
      "#{(feet * 0.0929).round} Meters" + raw("²")
    else
      "#{feet} sq. ft. "
    end
  end

使用 html_safe 似乎也不起作用:

  def area_conversion(feet, project)
    if project.metric
      "#{(feet * 0.0929).round} Meters" + "²".html_safe
    else
      "#{feet} sq. ft. "
    end
  end

【问题讨论】:

  • 我猜你必须将整个字符串定义为html_safe。当您将安全字符串与未保存的字符串合并时,它会变得不安全。
  • 你完全正确。我必须使两个字符串 html_safe 都可以工作。如果您想相应地编辑您的答案,我很乐意接受。谢谢!

标签: ruby-on-rails ruby-on-rails-3.2


【解决方案1】:

我认为您需要将整个字符串声明为html_safe,因为与不安全字符串合并的安全字符串再次变得不安全。在您的情况下,它应该被保存,因为字符串乘以浮点数是空的,所以没有人不能在这里将危险代码放入您的字符串中。 所以这个:

"#{(feet * 0.0929).round} Meters²".html_safe

应该没问题。

【讨论】:

  • 很有用,但是为什么它适用于 sup 而不是 sub,我得到字符串“I&sub2;”而是..
  • 我认为没有&sub2; HTML 实体。改用₂ 之类的东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-02
  • 2011-04-03
  • 2011-02-20
  • 2011-06-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多