ruby on rails - How do I update a counter of an associated object before it is saved? -
i have attribute on node object called cached_comment_count need updated whenever new comment created.
this part of create action in commentscontroller:
@node = node.find(params[:node_id]) @comment = current_user.comments.new(comment_params) @comment.node = @node @node.cached_comment_count = @node.comments.count however, doesn't work because when @node.comments.count returns current comments on @node object before new @comment saved.
what work if do:
@node.cached_comment_count += 1 the obvious issue is increment of 1 - , doesn't feel complete. best, complete, way comments.count after save has taken place.
but don't want end in infinite loop.
what's best way approach this?
just consider counter_cache rails functionality. can check old, still ryan bates railscast
Comments
Post a Comment