【问题标题】:Labels and Chartkick标签和 Chartkick
【发布时间】:2014-06-02 17:43:44
【问题描述】:

Chartkick 很棒,我可以做超级简单的事情,比如

<%= column_chart Device.joins(:reviews).group(:brand).average(:average_rating) %>

并得到如下结果:

现在,问题是标签没有传送到 chartkick。这是 chartkick 用来渲染图表的方法:

Chartkick.ColumnChart("chart-5", {"#<Brand:0x00000008a3c048>":"78.8","#<Brand:0x0000000879e840>":"80.70000712076823","#<Brand:0x0000000853e9d8>":"81.11111111111111","#<Brand:0x000000082808e0>":"73.42857142857143"}, {});

那么,最大的问题是......我怎样才能使用这种超级简单的查询方法,同时在图表上获得品牌名称?

我试过了:

<%= column_chart Device.joins(:reviews).group(:'brand.name').average(:average_rating) %>

...和其他变体无济于事...

【问题讨论】:

    标签: ruby-on-rails chartkick


    【解决方案1】:

    基本上我只需要对我的查询做一点小改动:

    <%= column_chart Device.joins(:reviews).includes(:brand).group(:'brands.name').average(:average_rating) %>
    

    然后我最终通过平均评分而不是品牌名称重新订购:

    devices = Device.joins(:reviews).includes(:brand).group('brands.name').average(:average_rating)
    arr = styles.to_a
    arr.map! { |pair| [pair.first, pair.second.to_f] }
    arr.sort! { |a, b| a.second <=> b.second }
    @sorted_hash = ActiveSupport::OrderedHash[arr]
    

    查看:

    <%= column_chart @sorted_hash %>
    

    宾果游戏:

    【讨论】:

    • 感谢您报告您如何解决此问题。你为我节省了大量时间!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-11
    相关资源
    最近更新 更多