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>