Can you have a model with attributes of another model?

Ok so basically I have a problem. Im relatively new to rails and i seem
to have come to a dead end. I wanted a model that could either be a URL,
a video, a picture or a sound recording. Obviously this is impossible. I
am gonna use attachment_fu if that helps. So whats the most DRY way of
doing this. Each media thing, whether it be a video, a picture, a URL or
a sound file must be classified under the same thing as, lets say a
media object. Consequently they share attributes, like an id, a upload
date, a description etc. However they differ in their actual media
format.

Does anyone know how I should make my models and controllers.
Thanks!

Zack,

Tuesday, July 13, 2010, 3:25:03 PM, you wrote:

Ok so basically I have a problem. Im relatively new to rails and i seem
to have come to a dead end. I wanted a model that could either be a URL,
a video, a picture or a sound recording. Obviously this is impossible. I
am gonna use attachment_fu if that helps. So whats the most DRY way of
doing this. Each media thing, whether it be a video, a picture, a URL or
a sound file must be classified under the same thing as, lets say a
media object. Consequently they share attributes, like an id, a upload
date, a description etc. However they differ in their actual media
format.

Does anyone know how I should make my models and controllers.
Thanks!
--
Posted via http://www.ruby-forum.com/.

Two possibilities come to mind: Subclassing and Mixins.

You can create

You probably want to use polymorphic associations.

http://guides.rubyonrails.org/association_basics.html#polymorphic-associations

Greg Donald wrote:

Does anyone know how I should make my models and controllers.
Thanks!

You probably want to use polymorphic associations.

http://guides.rubyonrails.org/association_basics.html#polymorphic-associations

--
Greg Donald
destiney.com | gregdonald.com

hey thanks for the reply. Your right, I thought about it more and
polymorphism is exactly what I need. However, I want a media object to
be either a picture, a video, a sound file or a link. So that means
links, pictures, videos and sound files have the attributes of a media
object but are their own media. If that makes any sense?
So for example id like to be able to do:
MediaObject.find_by_video(example_media_object.content) or something
like that. I dont really know how to explain this in rails, but I can do
this easily in java haha.

Thanks.

Ok thanks!