0

chartkickを使用してデータを視覚化するのが好きです。多くの購入を含む購入モデルがあります。

class Purchase < ActiveRecord::Base
  attr_accessible :category, :price, :product, :purchase_type
  def invert_price
    self.price.abs
  end
end

標準的なチャートは次のようになります。

<%= bar_chart Purchase.group(:category).sum(:price) %>

しかし、私の :price レコードはマイナスです。逆価格 (-price) または価格の絶対値 (price.abs) を取得する方法が必要なだけです。

Purchase モデルでメソッドを作成しようとしても、SQL クエリで解決できないため、機能しません。

class Purchase < ActiveRecord::Base
  attr_accessible :category, :price, :product, :purchase_type

  def invert_price
    self.price.abs
  end

  def invert_price
    self.price.abs
  end
end

エラー:

Mysql2::Error: Unknown column 'invert_price' in 'field list

独自の SQL クエリを作成すると正しい結果が返される可能性がありますが、chartkick はその後空でした。

<%= bar_chart Purchase.select("ABS(SUM(`candystore_purchases`.`price`)) AS sum_price, category AS category").group(:category) %> 

これを処理する方法はありますか?

4

1 に答える 1

2

試す:

<%= bar_chart Purchase.group(:category).sum("ABS(price)") %>
于 2014-06-19T07:59:19.093 に答える