2013-05-06 170 views
0

我对轨道相当陌生,而且我仍然习惯于将方法放在一起。我目前正在尝试创建一个平均来自多个列的不同数据的方法。我想在一个方法中完成所有操作,以便我可以在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方法做这个?提前致谢!

回答

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 %> 
+0

这工作!谢谢你的帮助 – bork121 2013-05-06 19:38:53