Rails カラムの平均値を表示

カラムの平均値はaverageで取得可能

関数定義

# File activerecord/lib/active_record/relation/calculations.rb, line 55
    def average(column_name, options = {})
      # TODO: Remove options argument as soon we remove support to
      # activerecord-deprecated_finders.
      calculate(:average, column_name, options)
    end

=>
Person.average(:age) # => 35.8

これを親モデルに記載

  def rating_average
      self.comments.average(:rating)
   end

rubyは最後に評価されたものが返却される

self.comments で親モデルに紐づくcommentsがすべて取得できる

controller は普通に詰め込むだけ showで走るメソッド

  def set_target_board
        @board = Board.find(params[:id])
   end

view

 <% @boards.each do |board| %>
    <tr>
      <td><%= board.id %></td>
      <td><%= board.title%></td>
      <td><%= board.name%></td>
//同じboadsに属しているので、メソッドがそのまま利用できる
      <td><%= board.rating_average %></td>