12

我如何在 Rails 4.0 中使用 Chartkick。

在宝石中我添加了:

宝石“chartkick”

例如,在我看来,我添加了这个:

<%= pie_chart({"Football" => 10, "Basketball" => 5}) %>

但该页面仅显示正在加载...生成的 Html:

<div id="chart-1" style="height: 300px; text-align: center; color:
#999; line-height: 300px; font-size: 14px; font-family: 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Arial, Helvetica, sans-serif;">   Loading... </div> <script type="text/javascript">   new Chartkick.PieChart("chart-1", {"Football":10,"Basketball":5}, {}); </script>
4

5 回答 5

21

为了让 chartkick 在 Rails 4 中工作,我做了以下工作:

1.将chartkick gem 添加到我的Gemfile(捆绑安装)

gem 'chartkick'

2.将Google jsapi 文件下载到我的供应商目录中

/railsapp/vendor/assets/javascripts/jsapi.js

3.在我的application.js中添加了chartkick和jsapi

//= require jsapi
//= require chartkick

之后,图表以一致的方式出现。

于 2013-10-15T20:28:19.130 回答
18

确保在图表之前包含 JavaScript 文件。

<%= javascript_include_tag "//www.google.com/jsapi", "chartkick" %>
于 2013-10-03T06:44:50.200 回答
5

超快加载图表

我在这里使用highcharts,因为它不需要您每次都连接到谷歌服务器

添加这个宝石

gem "chartkick"

然后从这里下载 highchart.js http://www.highcharts.com/download

将文件粘贴到您的 app/vendor/assets/javascript/highchart.js

打开你的 application.js 并需要这两个文件

//= require highcharts.js
//= require chartkick

之后你就可以开始了,你的图表将在眨眼间加载

于 2015-05-11T17:09:11.007 回答
4

实际上有两种方法可以解决这个问题,参考“安装”指南:http ://ankane.github.io/chartkick/

对于谷歌图表,使用:

<%= javascript_include_tag "//www.google.com/jsapi", "chartkick" %>

如果您更喜欢 Highcharts,请使用:

<%= javascript_include_tag "path/to/highcharts.js", "chartkick" %>

对于那些想离线使用 jsapi 的人来说,你真的不能,即使你已经下载了 jsapi.js,它仍然会对 google 做进一步的加载。您只是违反了条款:

摘自:谷歌图表常见问题解答

我可以离线使用图表吗?

不; 您的计算机必须能够实时访问http://www.google.com/jsapi 才能使用图表。这是因为您的页面所需的可视化库是在您使用它们之前动态加载的。加载相应库的代码是包含的 jsapi 脚本的一部分,当您调用 google.load() 方法时会调用该代码。我们的服务条款不允许您下载 google.load 或 google.visualization 代码以离线使用。

我可以在本地或 Intranet 上下载和托管图表代码吗?

对不起; 我们的服务条款不允许您下载和保存或托管 google.load 或 google.visualization 代码。

于 2014-04-23T11:34:24.023 回答
0

不知何故,我需要添加这三行以使事情正常运行……但我仍然收到一些警告……在 v3.0 中,他们说他们在 jsapi 方面有一些重大变化……令人困惑。

<script src="https://www.gstatic.com/charts/loader.js"></script>
<script src="chartkick.js"></script>
<%= javascript_include_tag "//www.gstatic.com/charts/loader.js", "chartkick" %>
于 2019-09-12T13:10:09.603 回答