0

erb テンプレートで Unicode をレンダリングしようとしています。

私の種:

Currency.create!(currency: 'USD', rate: 1.2805, title: 'U.S. Dollars', code: '\u0024', active: 1)

コントローラ:

@currencies = []
Currency.where(:active => TRUE).each do |node|
   c = node.rate * 25
   c = number_to_currency(c, :precision => 2, :unit => node.code)
   @currencies.push(:currency => node.currency, :price => c)
end

Template.erb:

<select>
    <% @currencies.each do |node| %>
        <option>
            <%= node[:currency] %> - <%= node[:price] %>
        </option>
    <% end %>
</select>

私はこれを期待しています:

<option>USD - $32.01</option>

しかし、私は生のユニコード出力を取得します:

<option>USD - \u002432.01</option>

私はもう試した:

utf8 エンコーディングのメタ属性を追加します。追加: <%# encoding: utf-8 %> テンプレートに。文字列に .html_safe を使用します。

4

1 に答える 1

2

これは、シードで単一引用符を使用しているためです。二重引用符にする必要があります。

"\u0024" # => "$"
'\u0024' # => "\\u0024"
于 2013-04-01T13:03:15.380 に答える