Thanks for the feedback. You're right about the asymmetry of the circles- I'll work on that. I'd pick a simpler problem to solve but this is what my client is paying me for. I've actually built a few rails projects but they were really straightforward.
Thanks again Sent from my iPhone On Aug 9, 2011, at 3:50 AM, Colin Law <clan...@googlemail.com> wrote: > On 8 August 2011 21:44, Stan McFarland <stan.mcfarl...@blackoakweb.com> wrote: >> Hi, >> >> Newbie here. I'm having to enter this from memory since my work is on >> a closed network, so forgive any syntax errors. >> >> I'm trying to recreate some basic Google Plus functionality with >> regards to users, posts, and circles - that is, a user can see a post >> only if he/she is in one or more of the same circles that the post >> belongs to: >> >> class User >> has_and_belongs_to :circles >> has_many :posts >> class Post >> has_and_belongs_to :circles >> belongs_to :user # the user that created the post >> class Circle >> has_and_belongs_to :posts >> has_and_belongs_to :users > > Firstly each of those should be has_and_belongs_to_many, but I expect > you knew that. > Secondly, I don't know whether you realise, but I don't think the > above will fully model the google+ concept. I think you need to model > the asymmetric way that circles relate to users. I think you will > need two relationships, firstly user has_many circles and circle > belongs to user. This will map the fact that a user has a number of > circles. Then you need to record who is *in* that circle via a > has_and_belongs_to_many relationships, where you will need to use the > :class_name specifier. Something like > user has_and_belongs_to_many :member_of_circles, :class_name=>'Circle' > Then the circles owned by a user are > @user.circles > and the circles that the user is in are > @user.member_of_circles > You will also need the equivalent reverse relationship to get all the > users that are members of a circle. > > I have not tested that, in fact I am not sure I have used :class_name > with a has_and_belongs_to relationship, I tend to prefer explicit join > tables. > > If you are a beginner at Rails I think you might be better to start > with something simpler, this is a non-trivial problem for the > beginner. Have you worked through some good tutorials? I recommend > railstutorial.org which is free to use online. Make sure you are > using Rails 3 and that the tutorial is for Rails 3. > > Also work through the Rails Guides. > > 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 rubyonrails-talk@googlegroups.com. > To unsubscribe from this group, send email to > rubyonrails-talk+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/rubyonrails-talk?hl=en. > -- 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 rubyonrails-talk@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.