3

我有一个名为 Rating 的模型,它引用了自身。

class Rating < ActiveRecord::Base
  has_many :ratings, :as => :ratable, :dependent => :destroy
  after_save :update_total_rating
  private
  def update_total_rating
    return true unless value_changed?
    rating_sum = Rating.sum('value',
        :conditions =>["ratable_id = ? and ratable_type = ?",
                       self.ratable_id, self.ratable_type])
    ratable.update_attribute(:total_rating, rating_sum)
    return true
  end
end

我这样做是为了缓存评分的总评分。这在开发和更新 total_rating 方面非常有效,当我在 Heroku Rails 控制台(heroku run rails c)中保存评分模型时,它也在生产中,但是当通过 Heroku 上托管的 Web 应用程序执行时,这不起作用,似乎由于某种原因没有调用 update_total_rating 。

知道什么可能导致此问题或如何解决此问题吗?

谢谢

4

0 回答 0