2

语境 :

我正在尝试使用 jqPlot 创建一个饼图,从 Rails 数据库中收集数据。

出现我的问题是因为 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
        }
    }
});

环境 :

  • 红宝石 1.9.3
  • 导轨 3.2.6
  • SQLite3 3.6.20
  • jquery-rails 2.0.2 (RubyGem)
  • jQuery 1.7.2
  • jqplot 1.0.0_r1012。
4

1 回答 1

2

对于未来的谷歌人...

虽然"string" 并且'string'一旦在 Ruby 中声明它们就可能是等价的,但对于 javascript,这个事实是无关紧要的。在 <script>标签内,ruby 字符串将显示为双引号。如果您想要单引号,则必须将字符串作为字符串以外的其他内容导入,然后稍后手动添加引号。

Javascript会'<%= event.total %>'很好理解。它将使用 Rails 打印出总数,然后脚本将在任一侧附加单引号。

希望这对任何人都有帮助!

于 2012-08-07T19:38:27.610 回答