我正在使用最新的Chartkick 2.2.5和Rails 5.1.4,我试图绘制单位(车辆)及其状态(可用/不可用/等)并通过图表踢获得计数和图表 .
这是我的视图代码:
<%= column_chart Status.includes(:units).order("name asc").map {|s| {name: s.name, data: s.units.group_by{|u| u.name}.count}}, library: {backgroundColor: "#F8F8F8"} %>
这导致以下显示:
所以它迭代了状态,但没有显示每个状态的单位数 . 也许我的红宝石是错的,或者group_by可能不是我想要的 . 但我希望能得到一些帮助 .
我已经安装了groupdate,并按日/周/月绘制其他对象没有问题,但是这个特定的图需要按状态对每个单元进行原始计数,我不确定采用哪种方法 . 我将继续google并参考Ruby API文档,但在此期间我们将不胜感激 .
Update
我在这方面取得了一些进展,但如果将状态分配给多个单元(在此示例中为“停止运行”分配给两个单元),则单元显示两次,如图所示 . 这是我更新的代码:
<%= column_chart Status.joins(:units).order("name asc").map {|s| {name: s.name, data: s.units.group('units.name').count}}, library: {backgroundColor: "#F8F8F8"} %>
结果如下:
所以's somewhere in my ruby where I' m无法使结果明显或独特 . 我已经尝试在状态和单位上调用 uniq
并且它使用类的未定义方法错误并建议 group_by
作为替代而不是组 .
如果我将其中一个单位更改为其他单位未使用的其他单位,则图表会正常显示,所以我认为我的Ruby很笨拙,需要一些帮助 .
1 回答
我仍在研究状态和单位的排序,但是我能够通过在方法链中添加.uniq来获得截然不同的结果,如下所示: