2016-09-06 5 views
0

私のレール4アプリでいくつかのデータを平均化することに問題があり、出力はそれに応じて数値を丸めます。例えば、私は選手の目標を平均化したいと思う。出力2.5を置く必要がありますが、それが表示されますRailsそれ自体が平均で切り捨てされます

[2,3] 

2.

コントローラ

@stats = Stat.where("playerId = ?", @player.playerId).group('year(gameDate)').select('AVG(goals) AS goals') 

私が試してみました

<% @stats.each do |s| %> 
    <%= s.goals %> 
<% end %> 

ビュー

@goal = Stat.where("playerId = ?", @player.playerId).group('year(gameDate)').average(:goals) 

ただし、BigDecimalエラーが発生します。グループパートを削除すると機能しますが、年単位でグループ化する必要があります。平均の

クエリ

Player Load (0.3ms) SELECT `players`.* FROM `players` WHERE `players`.`id` = 1 LIMIT 1 
    CACHE (0.0ms) SELECT `players`.* FROM `players` WHERE `players`.`id` = 1 LIMIT 1 [["id", "1"]] 
    PlayerStat Load (0.3ms) SELECT gameDate, AVG(goals) AS goals GROUP BY year(gameDate) ORDER BY year(gameDate) DESC 
Rendered players/_season.html.erb (1.1ms) 
+0

生成されているクエリを共有できますか?コンソールに表示する必要があります。 – Pachonk

+0

上記に追加されました。 – DollarChills

答えて

1

戻り値は、列のデータ型に型キャストされます。目標列が整数値の場合、平均メソッドは整数値のみを返します。

Reference

+0

もちろん!ありがとうございました。 – DollarChills

関連する問題