2013-05-06 174 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