make fewer calls to @post.comments

This is a little bit ugly, but it does work.  Caching really should be implemented somewhere else.