0

'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
4

1 に答える 1

3

html_safe安全でない文字列とマージされた安全な文字列が再び安全でなくなるため、文字列全体を宣言する必要があると思います。あなたの場合、floatを掛けた文字列は空なので、保存する必要があります。そのため、ここで危険なコードを文字列に入れることはできません。したがって、この:

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

大丈夫なはずです。

于 2012-04-25T19:28:49.757 に答える