Topic: embedded comment list and add comment example (polymorphic comments)

Hey, all.  Working on my first app.

I've searched all around - read a bunch of tutorials, articles, and forum posts, watched some screencasts, and I've found a few examples that come close to what I'm trying to do (notably http://railscasts.com/episodes/196-nest … orm-part-1 and http://railscasts.com/episodes/154-poly … ociation), but not exactly.

I have two models (Podcast and BlogPost) that need to be commentable, and I have a Comment model that is polymorphically related to both.  The railscasts above had a very similar example (ep 154), but Ryan used a full set of nested routes, so there were specific templates for adding and editing comments.  What I want to do is show the list of comments right on the Podcast or BlogPost page, along with an Add Comment form at the bottom.  I don't need a separate add template/route, and I don't need the ability to edit, only delete.

This is a pretty common design on the web, but I can't find a Rails example specifically about this pattern.  Here's my current understanding:

I need routes for the create and delete actions, of course, but there are no templates associated with those.  I'm also guessing that the right approach is to create a partial that can be included at the bottom of both the Podcast and BlogPost show template.  The logical name for the partial seems to me to be something like _comments.html.haml.  I know it's a common convention to have the object passed to the partial be named after the template, but calling the object 'comments' seems to not match my use case, since what I really need to pass is the commentable object (Podcast or BlogPost).  So, I guess I'd use the locals option for the render partial call?  (:commentable => @podcast).

Inside the partial, I could call commentable.comments to get the comments collection, render that with a second partial (this time with the conventional use case, calling the partial _comment.html.haml), then create a form that submits to... what?  REST-wise, it should be a POST to the collection, which would be /podcast|blogpost/:id/comments, and I think the helper for that is podcast_comments_path(podcast) if it were a podcast - not sure what to do though, since I'm using polymorphic comments.  That would trigger the Comment.create action, which would then need to redirect back to the podcast|blogpost path /podcast|blogpost/:id.

It's all a bit overwhelming, which is why I was really hoping to find a screencast or example that specifically implements this design.