我有一個帖子模型,它有很多評分,我想在帖子評分數據列中存儲每篇帖子的平均評分數字。我在帖子模型上有一個計數器緩存,用來計算收視率。創建新評分時更新帖子屬性
我在post.rb
def update_rating
if self.ratings_count_changed?
self.rating = self.ratings.average(:rating)
end
end
我有這個作爲before_save回調所以每當後編輯和保存它更新的收視率,不是很有用下面的代碼。
有沒有一種方法可以在創建新評級時調用此方法?
嗨,謝爾,這對我來說很合理,但是post.rb update_average_rating似乎沒有設置評分屬性,即使我聲明值爲5而不是ratings.average。事後需要self.update_attribute或self.save嗎? – dodgerogers747
哦,是的,它確實!讓我更新代碼以反映這一點。 –
lol ok !,我設法讓我的工作使用self.post.update_attributes(評分:self.post.ratings.average(:rating)) – dodgerogers747