【发布时间】:2012-04-16 20:15:07
【问题描述】:
假设我有一个处理 Posts 和 Comment 对象的 Rails 应用程序。一个帖子has_many 评论和每个评论belongs_to 一个帖子。
每个评论都有一个word_count 属性。 Post 对象有一个average_comment_word_count 属性,它是每个评论的word_count 的平均值。
第一个问题是如果 Post 对象被异步修改(添加 cmets 会影响平均字数),我应该在什么时候重新计算属性?什么时候返回对象?或者每次添加新评论时?它是否进入评论或发布帮助方法?哪个控制器函数应该调用这个方法?
此外,当我包含以下 Post 辅助方法时,我得到一个以 JSON 形式返回的 NULL 值。
def average_word_count
@average_word_count = 0
# current_user returns the current user object
# user has_many posts and each post belongs_to a user
current_user.posts.find(params[:id]).comments.each do |comment|
@average_word_count += comment.word_count / current_user.posts.find(params[:id]).comments.count
end
@average_word_count
end
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3.2