質問: Score.all (controller) <%= @scores.sum(:hole_score) %> (view) と、 @total_score =Score.all.sum(:hole_score) (controller) <%= @total_score %> (view) は結果同じになると思いますが、どちらが良いのでしょうか。 ヒントやアドバイスを宜しくお願い致します。
回答: ユーザごと score だけで良いのでしたら `scores = Score.group(:user_id).select("user_id,sum(score) as sum_score")` とすると scores[?].user_id scores[?].sum_score で結果が得られます カラムを指定するのは、controller側なのか、view側なのか 場合によりますが、できるだけ controllerにするのがよいと思います。 場合ですが、 @score から取るのが total_score だけなら controllerが良いですが、 その他にも色々取るのだ、となると viewのほうが良いです。 「できるだけ」というのは、viewってごちゃごちゃになりやすいので、できるだけ計算は済ませておいてすっきり書きたいです