Thanks Matt and Colin.

On May 14, 8:46 am, Matt Jones <[email protected]> wrote:
> 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 
> athttp://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 [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.

Reply via email to