简单的问题我似乎无法弄明白:
在控制器中:
@clientsMonthYearQuery = Client.group(:month_year)
在视图中,我有这个查询
@clientsMonthYearQuery.average(:charge)
如何对查询结果进行舍入以将平均值四舍五入为2个小数点?
*注意在视图中链接AR calc有一个商业原因,我给出的例子是从真实的东西中简化
答案 0 :(得分:1)
我试图用chartkick做同样的事情时遇到过这个问题。我将结果转换为数组(实际上每个子数组为[client,charge]的数组数组),然后舍入每个子数组中的第二个值,如下所示:
@clientsMonthYearQuery.average(:charge).to_a
@clientsMonthYearQuery.each do |record|
record[1] = record[1].round(2)
end
我在控制器中这样做。您当然可以将结果保存为哈希并以类似方式迭代它,但我更喜欢数组(并且chartkick同时接受这两个),这对我有用。
答案 1 :(得分:0)
您可以对ActiveRecord查询返回的数字进行舍入,如下所示:
@clientsMonthYearQuery.average(:charge).round(2)
如果你在视图中这样做,你也可以使用这个方便的Rails Helper:
<%= number_with_precision @clientsMonthYearQuery.average(:charge), :precision => 2 %>