вы можете использовать крючки жизненного цикла модели, примечание, after_create
.
в модели оценки, вы можете написать после того, как создать крюк, который будет обновлять mean_rating
#models/rating.rb
after_create :update_book_mean_rating
def update_book_mean_rating
new_mean_rating = self.book.ratings.sum(:overall)/self.book.ratings.count
self.book.update_attributes(mean_rating: new_mean_rating
end
вы, вероятно, хотите добавить валидации/проверку, убеждается рейтинг всегда есть книга и т.д., и делает что-то подобное при уничтожении, но что-то подобное должно указывать на вас в правильном направлении.
Использовать алгоритм. – zeantsoi