我可以使用chartkick图表链接到其他网址吗?

时间:2014-03-26 22:11:29

标签: ruby-on-rails ruby-on-rails-4 google-visualization chartkick

我有一个rails 4 app并且我使用了chartkick。我目前正在使用饼图,我想知道是否有一种方法可以让我的饼图的每个部分导航到端点或网址或其他任何部分。

有人会如何解决这个问题?它会在ERB文件或控制器中完成吗?它将如何完成?

1 个答案:

答案 0 :(得分:0)

我花了很多时间试图自己解决这个问题。不幸的是,似乎没有一个简单的'在这里添加链接并且去'那种选择。

Chartkick允许您指定是否要使用Google Charts Library或Highcharts库。这两个库都允许您绘制图表,您可以在其中指定特定数据点/数据系列的“单击”操作。为了利用这一点,你可以使用直接的JQuery / JS绘制你的图表 - 如果你只习惯标准的chartkick东西,它会比看起来容易得多。

以下是HighCharts文档: http://api.highcharts.com/highcharts#plotOptions.pie.events.click

这是一篇很棒的博客文章,展示了如何设置JS / Jquery(您可以使用http://js2.coffee将此转换为Coffescript非常简单) http://birdchan.com/home/2012/09/07/highcharts-pie-charts-can-have-url-links/

他的方法效果很好,而且,您可以通过在资源控制器上创建一个端点来更轻松地提供图表所需的数据哈希,替换:

data: [
            {name: 'Not Tested', color: '#FFA850', y: 87, url: 'http://my_site1.com'},
            {name: 'Fail', color: '#FF2929', y: 2, url: 'http://my_site2.com'},
            {name: 'Pass', color: '#31FF4F', y: 32, url: 'http://my_site3.com'}
        ]

有类似的东西:

$.ajax {
url: "/place/resources/resource_id/top_members.json"
success: (data) ->
  draw_some_pie_chart(data)
}

或者您也可以使用GON gem将该哈希值作为Coffeescript / JS文件中的变量提供。

我确信有更具体/彻底的方式来回答你的问题。如果您想发布您尝试使用的代码示例,我可以更新我的答案