2

我是 Rails 的新手。我遵循了文档和这个例子:在 Rails 4.0 中使用 Chartkick 但我无法让 Chartkick 工作。我得到未定义的方法饼图。我的 js 看起来像这样:

//= require chartkick
//= require jsapi
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require bootstrap
//= require_tree .

我尝试在应用程序 kayout 和显示页面中都包含 javascript_include。<%= javascript_include_tag "//www.google.com/jsapi", "chartkick" %>

有任何想法吗?谢谢大家。我真的很感激我在这里得到的每一点帮助。


你所问的看起来有点奇怪,因为你有不同的长度并且你忽略了未定义的值,但它仍然是可以实现的。

不要对Arrayfor..in使用循环,使用普通的. 此外,您需要知道新的父Array中有多少项目,这是原始子Arrays长度的最大值for

var arrR = [ // will refer to "down" and "across" as in this literal
        [1],
        [1, 2],
        [1, 2, 3],
        [4, 2, 3],
        [4, 5, 3],
        [4, 5, 6]
    ];
function r2c(arr) {
    var arrC = [], // next get the longest sub-array length
        x = Math.max.apply(Math, arr.map(function (e) {return e.length;})),
        y = arr.length,
        i, j;
    for (i = 0; i < x; ++i) {   // this is the loop "down"
        arrC[i] = [];
        for (j = 0; j < y; ++j) // and this is the loop "across"
            if (i in arr[j])
                arrC[i].push(arr[j][i]);
    }
    return arrC;
}
var arrC = r2c(arrR);
/* [
    [1, 1, 1, 4, 4, 4],
    [2, 2, 2, 5, 5],
    [3, 3, 3, 6]
] */

您仍然应该考虑是否对[[1], [1, 2], [1]]成为感到满意[[1, 1, 1], [2]],我认为这是出乎意料的(2完全失去了的位置),但似乎是您想要的。

4

3 回答 3

0

事实证明,由于 Chartkick 作为引擎运行,我不需要在应用程序 js 文件中添加 // include chartkick - 我删除了它,它就像一个魅力。这意味着让 Chartkick 在 Rails 4 中工作的步骤是:

  • 添加gem 'chartkick'到您的 Gemfile
  • 添加<%= javascript_include_tag "//www.google.com/jsapi", "chartkick" %>到 app/views/layouts/application.html.erb
于 2013-10-12T15:05:54.607 回答
0

#= 需要 active_admin/base

需要chartkick

在 active_admin.js.coffee

并像这样在 app/views/items 文件夹中的部分文件.._items.html.ebr 中从谷歌调用直接 jsapi

javascript_include_tag "//www.google.com/jsapi", "chartkick"

饼图顺序,库:{pieSliceText:'value'}

然后像这样调用这个部分文件

div 类:'custom-class' 做

        h3 'Items'
        @item = Item.group(:menu_id).count #whatever data you pass to chart
        render partial: 'items/items', locals: {item: @item}
      end
于 2016-05-11T07:10:52.973 回答
0

只需将此添加到您的 chartkick 的javascript_include_tag- 'data-turbolinks-track' => true。还jquery-turbolinks gem安装了(文件中需要正确的脚本结构application.js)。最后重启服务器。

于 2016-04-29T04:40:30.673 回答