Here's the scenario:
I'm developing a personal website, to contain images, blogs, videos, code, etc. I'd like users to be able to comment on all these things.
Now I could create a 'comments' table and stick a 'type' field in there and inherit all the actual model classes from Comment. This gets the job done, but I wind up with a bucket load of redundant code, especially in the controllers/views.
Am I missing some base Rails functionality here? Can I associate all my other models to the Comment model simply? It's entirely possible I'm missing something easy. If so, please point it out.
Assuming I haven't missed something really easy, I've been looking for a way to easily encapsulate the code to do comments.
I've created a ActiveRecord extension called 'is_commentable'. Which is just a thin wrapper around 'has_many' that adds the class name to the type field. I've added a helper that takes an object and checks to see if it's 'commentable?' and if so renders the associated comments.
Engines seem like a good fit, because I want end to end functionality. I want to drop in comment_engine and be able to start commenting my other models.
I'm just in search of a sanity check. I'd like to learn to do things the correct way, and with something as flexible as Ruby/Rails the 'right way' isn't always clear.
Thanks in advance.
-Will
_______________________________________________ engine-developers mailing list [email protected] http://lists.rails-engines.org/listinfo.cgi/engine-developers-rails-engines.org
