我正在尝试使用jqPlot创建一个饼图,从Rails数据库中收集数据。
我的问题出现是因为jqplot不理解event.name生成的字符串。如果我手动插入几个字符串,而不通过Rails,它工作正常。我相信它与转义它不应该的字符有关。
我从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
}
}
});
答案 0 :(得分:1)
未来的googlers ......
虽然"string"
和'string'
在Ruby中声明后可能是等效的,但是当涉及到javascript时,这个事实是无关紧要的。在<script>
标记内,ruby字符串将显示为双引号。如果你想要单引号,你将不得不将字符串作为字符串以外的东西导入,然后稍后手动添加引号。
Javascript会理解'<%= event.total %>'
就好了。它将使用Rails打印出总数,然后脚本会将单引号附加到任何一方。
希望这对任何人都有帮助!