我有一个应用程序,其他用户根据不同的特征审核用户。
现在我获得了一列的平均值(让我们说列是"智能"及其整数)
但问题是我提高了平均水平" smart"为所有用户。 我希望它是" smart"的平均值。我正在查看的用户。
这是我现在的代码: 用户控制器:
@user = User.find(params[:id])
@smart = Review.average(:smart)
用户显示视图:
<%=@smart%>
答案 0 :(得分:2)
来自fine Active Record Query Interface guide:
9次计算
[...]
所有计算方法都直接在模型上起作用:Client.count # SELECT count(*) AS count_all FROM clients
或关系:
Client.where(first_name: 'Ryan').count # SELECT count(*) AS count_all FROM clients WHERE (first_name = 'Ryan')
注意关系示例中的。
如果要计算列子集的平均值,请说:
@smart = Review.where(:user_id => params[:id]).average(:smart)
甚至:
@smart = @user.reviews.average(:smart)
如果您已设置关联。