making a generic comment model

I have a Comment model obviously to make comments. I have also a
Person and Family class and I want to make comments on bother a person
and a family. How can I set this up. I want to use the same generic
comments table for all the comments on both person and family model. I
can't figure it out, I can set up comments for either a Person or a
Family one at a time but not both.


Class Person
   has_many :comments

How can I make comments work on the Family model too?

You want to make comment a polymophic association
e.g. on your person and family model you have:

has_many :comments, :as => :attachable

then on the comment class you have:

belongs_to :attachable, :polymorphic => true

and in your table for comments you have:

integer :attachable_id
string :attachable_type
text :comment

Best, Daniel

thanks you! polymorphic association it's called you say. It works

You might want to have a look at the acts_as_commentable plugin

It expands on this idea, but uses commentable rather than attachable
as the association name, which I think makes a bit more sense, and is
less likely to collide if you decide that one or more of the models
which can have comments can also have uploaded files as attachments.