2010/1/27 lunaclaire <[email protected]>: > First the data model: > > class Forum < ActiveRecord::Base > has_many :topics, :dependent => :destroy, :order => > 'created_at > desc' > end > > class User < ActiveRecord::Base > has_many :topics, :dependent => :destroy > has_many :comments, :dependent => :destroy > has_many :replies, :dependent => :destroy > end > > class Topic < ActiveRecord::Base > belongs_to :forum > belongs_to :user > has_many :comments, :dependent => :destroy > end > > class Comment < ActiveRecord::Base > belongs_to :user > belongs_to :topic > has_many :replies, :dependent => :destroy > end > > class Reply < ActiveRecord::Base > belongs_to :user > belongs_to :comment > end > > So Users can post Topics to Forums. They can also post Comments to the > Topics in a Forum. And they can post Replies to the Comments. > > I want to be able to get a list of Forums they've participated in by > posting either Topics or Comments or Replies.
I am not sure if this will work but could you provide a named_scope on Forum that takes a user id as a parameter, :include topic, user, comment and reply, and specify the condition that forum.topic.user.id=user_id OR forum.topic.comment.user.id = user_id OR forum.topic.reply.user.id=user_id. I am not sure if the include user will include comment.user and reply.user, I am working out of my comfort zone here. If there is not a rails way to do it then you could always just write the above as SQL though I always try and avoid this. Colin -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

