2012-08-09 4 views
0

Je n'arrive pas à trouver la meilleure façon de procéder. J'ai un modèle d'utilisateur et un modèle de tournoi et j'ai mis en place un has_many: par la relation entre ces deux modèles appelés 'follow_tournaments' afin que les utilisateurs puissent suivre un tournoi. A ce titre, j'ai déjà un has_many: tournois dans le modèle User et un has_many: users dans le modèle Tournament pour qu'un tournoi ait de nombreux adeptes et qu'un utilisateur puisse suivre de nombreux tournois. Je voudrais mettre en place une autre habtm ou has_many: through relation afin qu'un utilisateur puisse être considéré comme un "contributeur" à un tournoi - une relation complètement séparée de ce que j'ai déjà mis en place. J'aimerais qu'un tournoi ait un nombre quelconque de contributeurs et que l'utilisateur contribue à de nombreux tournois.Relations multiples avec les mêmes modèles

Quelle est la meilleure façon d'y parvenir?

+0

vous pourriez peut-être placer que sur le modèle FollowedTournament. peut-être un nom booléen attr contribué. –

Répondre

0

Utilisez source ou class_name

class Tournament < ActiveRecord::Base 
    has_many :users # ... whatever 

    has_many :contributions 

    # using class_name 
    has_many :contributors, :through => :contributions 

    # using source 
    has_many :contributors, :through => :contributions, :source => :user 
end 

class Contribution < ActiveRecord::Base 
    belongs_to :tournament 

    # using class_name 
    belongs_to :contributor, :class_name => 'User' 

    # using source 
    belongs_to :user 
end 
Questions connexes