2010-11-21 6 views
0

Ceci est devoirs, juste pour que cela soit mentionné.Ruby on Rails relations

J'ai un projet appelé AdventCalendar, qui est censé être un calendrier de l'Avent (évidemment). J'ai rendu possible la connexion/déconnexion ou la création de nouveaux utilisateurs. Une fois connecté, vous pouvez créer des calendriers (calendriers de l'Avent). Chaque calendrier a plusieurs jours et un jour appartient à un calendrier. En outre, un utilisateur peut créer plusieurs calendriers. Donc, ce que je veux, c'est permettre à un utilisateur de partager son agenda avec d'autres utilisateurs s'il le souhaite. Je suis coincé et je ne sais pas où aller d'ici. Je pensais que peut-être ajouter un

has_and_belongs_to_many :users 

au calendrier, et même:

has_and_belongs_to_many :calendars 

aux utilisateurs ..

Je ne sais pas comment le mettre en œuvre. Des conseils, ou de l'aide est très appréciée!

Merci d'avance.

Répondre

2

Oui, vous avez raison ici. Bien que je pense que c'est un peu moins compliqué. Les calendriers n'ont pas besoin d'avoir beaucoup d'utilisateurs. La relation, hiérarchiquement est ok avec seulement les utilisateurs ayant des calendriers. Ensuite, pour les calendriers, créez une table de jointure polymorphe pour permettre à un calendrier d'avoir de nombreux utilisateurs associés.

#user.rb 

has_many :calendars 


#calendar.rb 

belongs_to :many_users, :polymorphic => true 
has_many :users, :as => :many_users 

Votre table de calendrier doit avoir une many_users_id, et un champ user_id.