ActiveRecord model help

Hey guys,

I’m not that great with Rails yet, but I’m trying to get there.

I’m developing a site where users will be able to upload pictures and
videos (eventually). I want to set the pictures and the videos up as
separate models, or at least so they will act like it. Comments, tags,
and ratings will go onto the pictures and videos. I’ve decided the
easiest way to do it, while keeping everything nice and DRY, is to
create a “content_item” model, through which the pictures and videos
will act.

I’m trying to find a way to basically do the following:
Picture.find(1) will go find the item with id = 1 in the content_items
model. If the content_type at id 1 isn’t a picture, it will return an
error.
Video.find_by_username(“Foobar”) would return all videos for the user
Foobar by using content_type “Video”

I don’t think polymorphic associations applies to this, since the
content doesn’t has_one video, the content IS the video, if that makes
any sense.

As of right now, I have a blank model. I know the answer is something
simple, but I just can’t seem to find it.

Thanks,

Jonathon

What about single table inheritance?

You can add two more models. One for Video and one for Picture and
have them inherit from ContentItem.

I have a User model in my app and two other models which use the same
table: Employee and Customer. I created two new files in the models
folder: customer.rb and employee.rb.

Here is what employee.rb looks like:

class Employee < User

model specific code here

end

you can do Employee.find(1) and it will return an Employee object from
the users table.

just wanted to add when you do something like Video.find(1) and item 1
is a picture it will raise ActiveRecord::RecordNotFound

you can just run some code in your controller to handle errors from
there.