+1  A: 

Can you create a comment in the console, add it to a post and then display it in 3 separate steps?

You are doing lots of non-default fk name specification (though your names don't seem to be that different from what rails would expect so you might want to just use the conventions)so my guess is that somehow your has_many belongs_to are messed up.

srboisvert
Good idea. I just tried this and it worked fine. The counter cache also got updated to 1. I'll put the Rails console output in my answer just in case. This is going in the right direction but seems to suggest taht the has_many and belongs_to are not actually messed up. And it still doesn't explain why the migration failed to update the pre-existing Post to report the correct number of pre-existing Comments. Nor why calling p.comments.size BEFORE p.comments in the Console would have a different effect. Thanks for the feedback. I'll continue tinkering.
pez_dispenser