2012-11-08 108 views
4

我正在使用轨道使用高图表库,使用发现here的gem。一切工作都非常好,除非我尝试添加plotLine到任一轴,我似乎无法弄清楚。以下是我迄今尝试过的两个选项及其结果。任何对发生的事情的深入了解都将倍受赞赏。使用轨道不显示plotLines的highcharts

选项1:

chart.yAxis([{title: 'Y-Axis', min: 0, plotLines: {value: 25}]) 

结果:我得到一个错误在JavaScript的

Uncaught TypeError: Object #<Object> has no method 'concat' 

具体地说,这是在参考highcharts.js以下代码

​​

当我暂停执行那里options.plotLines变量是一个对象,而不是一个数组,因此没有concat我的ThOD。

选项2:

chart.yAxis([{title: '', min: 0, plotLines: [{value: 25}]}]) 

结果:页面失败,并从导轨下面的错误信息进行渲染。

You must pass a Hash to Highcharts::Axis::PlotLines. You passed [{:value=>25}] 

,我不知道本作的是什么,但是鉴于我预计这个工作,因为我想给超过1个情节主线的high charts API文档。

我也试图使用chart.renderer.path,但也失败了。有人可以解释发生了什么,并希望能够提出一种方法,我可以在Rails中使用此Gem绘制横跨高图表图形的水平线。

由于

回答

1

我实际上由操纵由HighCharts产生的潜在的javascript这出Ruby对象。这里是要做的代码

chart.yAxis([{title: '', min: 0, plot_lines_replace: plot_lines}]) 

# Because of a bug in this High Charts rails library, I'm going to have 
# to add the plot_lines myself through the javascript 

return chart.to_s.gsub("plot_lines_replace", "plotLines").html_safe 

这将修改plot_lines_replace字符串与javascript中的plotLines,它会正常工作。