0

私はレールにかなり慣れていませんが、まだメソッドをまとめることに慣れています。現在、複数の列から個別のデータを平均化する方法を作成しようとしています。HTMLテーブルに情報を簡単に表示できるように、すべてを1つのメソッドで実行したいと思います。

現在、私は自分のモデルにこれを持っています:

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 メソッドを変更するにはどうすればよいですか? 前もって感謝します!

4

1 に答える 1

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 %>
于 2013-05-06T19:05:53.223 に答える