多くの評価を持つ投稿モデルがあり、各投稿の平均評価値を投稿評価データベース列に保存したいと考えています。投稿モデルに、評価の数をカウントするカウンター キャッシュがあります。
post.rb に次のコードがあります
def update_rating
if self.ratings_count_changed?
self.rating = self.ratings.average(:rating)
end
end
これを before_save コールバックとして使用したため、投稿を編集して保存するたびに評価が更新されますが、あまり役に立ちません。
新しい評価が作成されるたびにこのメソッドを呼び出す方法はありますか?