标签和Chartkick

时间:2014-06-02 17:43:44

标签: ruby-on-rails chartkick

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

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

获得如下结果:

enter image description here

现在,问题是标签没有输入到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) %>

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

1 个答案:

答案 0 :(得分:4)

基本上我只需要对我的查询进行一些小改动:

<%= 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 %>

宾果:

enter image description here