假设我有一个 Rails 应用程序处理Posts
和Comments
. 一个帖子has_many
评论和每个评论belongs_to
一个帖子。
每个评论都有一个word_count property
. Post 对象有一个average_comment_word_count
属性,它是每个 Comment 的平均值word_count
。
DELETE
当我针对特定评论发送请求时,应用程序应重新计算average_comment_word_count
参数。我认为它的工作方式是这样的:
class Comment < ActiveRecord::Base
belongs_to :user
belongs_to :post
after_destroy :update_post_average_word_count
def update_post_average_word_count
post_average_word_count = 0
post.comments.each do |comment|
post_average_word_count = post_average_word_count + comment.word_count
end
post_average_word_count / post.comments.count
post.update_attributes average_word_count: post_average_word_count
end
但是我收到一个数据库错误,因为该应用程序找不到对相关帖子的引用(因为评论已经消失,请在此处提示 Homer Simpson)
有没有不同的方法来完成这个?