On May 14, 1:50 am, badnaam <[email protected]> wrote: > I have two models Club and users. users are regular authenticated > users and some of them might create a club. A club can also have > members (essentially users) and there are attributes and models that > apply to member but not to users. > > Here is what I have right now. > > Club => belongs_to :user > > User => has_many clubs (since a user can host multiple clubs). > > Now how do I fit this member model into the picture, a club can have > many member, but since a club only has one user(the user who owns the > club), I can't really do a Club => has_many :users. do i need to > create a different model named ClubOwner for users who host clubs or > is there a better way to do this.
Assuming that a User can belong to many Clubs, you'll need a join table between the two: class User < AR::Base has_many :owned_clubs, :foreign_key => 'owner_id', :class_name => 'Club' has_many :club_memberships, :dependent => :destroy has_many :clubs, :through => :club_memberships end class ClubMembership < AR::Base belongs_to :user belongs_to :club end class Club < AR::Base has_many :club_memberships, :dependent => :destroy has_many :users, :through => :club_memberships belongs_to :owner, :class_name => 'User' end You'll need to move your existing 'user_id' column on Club to 'owner_id'. Hope this helps! --Matt Jones -- 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.

