2

コンテクスト :

Railsデータベースからデータを収集し、jqPlotを使用して円グラフを作成しようとしています。

jqplotがevent.nameから生成された文字列を理解しないため、私の問題が発生します。Railsを経由せずに手動でいくつかの文字列を挿入すると、正常に機能します。nエスケープ文字と関係があると思います。

Firebugから得られるエラーはを示していますevents = [["Title", 1234566]]。したがって、jqplotは"Title"、キーとしてこのチャートを作成しようとします。それは好きではありません。

html_safeを使用してみましたが、役に立ちませんでした。


コード:

<% things = [] %>
  <% @topEvents.each do |event| %>
<% things << [event.name, event.total] %>
<% end %>

$.jqplot('topEvents', [ <%= things %> ], {
    seriesDefaults : {
        renderer : jQuery.jqplot.PieRenderer,
        rendererOptions : {
            showDataLabels: true
        }
    }
});

環境 :

  • Ruby 1.9.3
  • Rails 3.2.6
  • SQLite3 3.6.20
  • jquery-rails 2.0.2(RubyGem)
  • JQuery 1.7.2
  • jqplot1.0.0_r1012。
4

1 に答える 1

2

将来のグーグルのために...

"string" Rubyで宣言されると、と'string'は同等になる可能性がありますが、javascriptに関しては、この事実は関係ありません。<script>タグ内では 、ルビー文字列は二重引用符で囲まれているように表示されます。一重引用符が必要な場合は、文字列を文字列以外のものとしてインポートし、後で手動で引用符を追加する必要があります。

Javascriptは問題なく理解'<%= event.total %>'できます。Railsを使用して合計を出力し、スクリプトはいずれかの側に一重引用符を追加します。

これが誰かに役立つことを願っています!

于 2012-08-07T19:38:27.610 に答える