Tough modeling problem

Jables wrote:

I have what I think is a fairly complex modeling problem for you guys.

So I have a user class. There are three link type classes: picture, video, and story. A user can vote, bookmark, and add any of those types. Essentially I want to be able to say: user.stories and get the stories the user has uploaded user.votes.stories and get the votes that are stories user.votes.videos and get the votes that are videos user.bookmarks.videos and get the bookmarks for the videos

So these are essentially join tables, but I can't seem to get them to go properly, have tried polymorphism and has_many_polymorphs, limited success, limited knowledge.

Now I also want to be able to go the other way:

story.votes story.user story.bookmarks

I will be seriously impressed if anyone can tackle this

Thanks for the help, JB

class Story < ActiveRecord::Base ~ has_many :votes ~ belongs_to :user

~ end end

class User < ActiveRecord::Base ~ has_many :stories ~ has_many :votes ~ has_many :stories_voted_on, :through => :votes, :source => :story end

class Vote < ActiveRecord::Base ~ belongs_to :story, :counter_cache => true ~ belongs_to :user

end

belongs_to and has_many and their friends are what you seek.

- -- Phillip Gawlowski Twitter: twitter.com/cynicalryan

~ - You know you've been hacking too long when... ...your children do something they shouldn't do, you tell them to stop, they do it just once more anyway, so you think "Well, they prefetched the instruction and are executing it in the delay slot."