计算多个不同的平均值

时间:2013-05-06 18:15:20

标签: ruby-on-rails ruby average

我对rails非常陌生,我仍然习惯于将方法放在一起。我目前正在尝试创建一种平均多列不同数据的方法。我想在一个方法中完成所有操作,以便我可以在html表中轻松显示信息。

目前我的模型中有这个:

def averagedonate
    scores.group(:donatedate).average('donateamount')
    scores.group(:donatedate).average('rating')
end

我希望能够在这样的表格中使用它们:

<% @averagedonate.each do |donatedate, donateamount, rating| %>

  <tr>
    <td><%= donatedate %></td>
    <td><%= donateamount %></td>
    <td><%= rating %></td>
  </tr>

如何更改averagedonate方法来执行此操作?提前谢谢!

1 个答案:

答案 0 :(得分:0)

我还没有测试过,但是这个效果应该有效

def averagedonate    
    scores.select("
        AVG(donateamount) as avg_donateamount,
        AVG(rating) as avg_rating,
        donatedate
    ")
    .group(:donatedate)
end

然后像这样使用它

<% @averagedonate.each do |item| %>
    <tr>
    <td><%= item.donatedate %></td>
    <td><%= item.avg_donateamount %></td>
    <td><%= item.avg_rating %></td>
    </tr>
<% end %>