2016-08-02 71 views
2

簡單的問題,我似乎無法弄清楚:Rails的一輪活動記錄查詢結果

在控制器:

@clientsMonthYearQuery = Client.group(:month_year) 

在視圖中我有這個疑問

@clientsMonthYearQuery.average(:charge) 

我會怎樣將查詢結果四捨五入爲平均值2個小數點?

*注有商家原因鏈接在視圖中AR計算,我給的例子是從真實的東西簡化

回答

1

我只是碰到這種同時來到試圖做同樣的事情chartki CK。我的結果轉換爲一個數組(數組的一個數組實際上,其中每個子陣列是[客戶端,電荷]),然後輪每個子陣列中的第二個值,如下所示:

@clientsMonthYearQuery.average(:charge).to_a 
@clientsMonthYearQuery.each do |record| 
    record[1] = record[1].round(2) 
end 

我這樣做在控制器中。你當然可以保留結果作爲散列並且類似地迭代它,但是我更喜歡數組(並且chartkick接受兩者),並且這適用於我。

0

您可以全面恢復數量由ActiveRecord的查詢,像這樣:

@clientsMonthYearQuery.average(:charge).round(2) 

如果你在一個視圖這樣做,你可以用這個方便的Rails助手以及:

<%= number_with_precision @clientsMonthYearQuery.average(:charge), :precision => 2 %> 
+0

你知道我試過,並得到:undefined方法'圓'爲#<哈希:0x000000087a5730> – HoosierCoder

+0

你檢查@ clientsMonthYearQuery.average(:charge)返回的值是float還是double類型? – Shaunak

+0

float ..所以我覺得我必須得到查詢來回合,因爲這進入了一個chartkick寶石.. – HoosierCoder