投稿オブジェクトとコメントオブジェクトを処理するRailsアプリがあるとします。投稿has_many
コメントと各コメントbelongs_to
投稿。
各コメントにはword_count
プロパティがあります。Postオブジェクトには、average_comment_word_count
各コメントの平均であるプロパティがありますword_count
。
最初の質問は、Postオブジェクトが非同期的に変更される場合(平均単語数に影響するコメントが追加される場合)、どの時点でプロパティを再計算する必要がありますか?オブジェクトが返されるとき?または、新しいコメントが追加されるたびに?コメントや投稿ヘルパーのメソッドに入りますか?どのコントローラー関数がこのメソッドを呼び出す必要がありますか?
また、次の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