2017-12-10 34 views
1

私は最新のChartkick 2.2.5とRails 5.1.4を使用していますが、ユニット(車両)とそのステータス(Available/Unavailable /など)を取得し、チャートキックを介してカウントとグラフを取得します。これは、次のような表示になりChartkick、groupdateなしでオブジェクトをグループ化し、Rubyでgroup_byを使用

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

enter image description here

だから、ステータスを反復処理ですが、ために単位数が表示されていない。ここ

は、私の見解コードは次のようになります各ステータス。おそらく私のルビーは間違っているかもしれないし、おそらくgroup_byは私が探しているものではない。しかし、私はこれにいくつかの助けを望んでいた。

私はgroupdateをインストールしていて、他のオブジェクトを日/週/月ごとにグラフ化していますが、このグラフではステータスごとに各ユニットの生カウントが必要です。私はGoogleに続き、Ruby APIのドキュメントを参照しますが、その間は何か助けに感謝します。

更新

私はこれでいくつかの進歩を遂げた、しかし、ステータス(二つのユニットに割り当てられている「サービスのうち、」この例では)複数のユニットに割り当てられている場合は、ユニットが二倍の表示しますあなたは写真で見ることができます。ここで

<%= column_chart Status.joins(:units).order("name asc").map {|s| {name: s.name, data: s.units.group('units.name').count}}, library: {backgroundColor: "#F8F8F8"} %> 

結果されています:

enter image description here

だから、私は結果が異なったかのユニークな行うことができないんだ私のルビーのどこかにありますここに私の更新されたコードです。私はステータスとユニットの両方でuniqを呼び出そうとしましたが、クラスの定義されていないメソッドでエラーが発生し、グループの代わりにgroup_byが示唆されています。

他のユニットで使用されていない別のステータスにユニットを変更すると、チャートが正しく表示されるため、Rubyがjankyであり、少し助けが必要だと思っています。

+0

あなたに投票してください。共有ありがとう – tmow

+0

私はどちらか分かりません。 – nulltek

答えて

1

私はまだステータスやユニットの順序に取り組んでいますが、私はそうのようなメソッドチェーンで.uniqを追加することにより、明確な結果を得ることができた:私は、なぜ得ることはありません

Status.joins(:units).uniq.map {|s| {name: s.name, data: s.units.group(:name).count}} 
関連する問題