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

Смежные вопросы