2013-08-02 3 views
0

Je suis nouveau sur les rails et je me demande si mon intuition sur la façon de mettre en place l'association suivante est correcte.Comment configurer une association de trois modèles?

J'ai des thèmes partenaires qui doivent être associés à un thème audio par défaut. Le thème audio a alors beaucoup de chansons associées. Les thèmes audio auront donc plusieurs chansons et plusieurs thèmes partenaires auront le même thème audio.

Dois-je le configurer comme suit?

Partenaire Thème: has_one: audio_theme has_many: chansons, à travers:: audio_theme

Thème Audio: has_and_belongs_to_many: partner_themes has_many: chansons

Songs: belongs_to: audio_theme has_and_belongs_to_many: partner_themes, à travers:: audio_theme

Aussi comment dois-je configurer les migrations pour toutes ces associations si les modèles existent déjà mais les associations ne le font pas?

Merci!

Répondre

1

Je pense que vous pouvez le configurer plus simplement - comme ceci:

Audio.rb

has_many :PT 
has_many :songs 

Partner.rb

belongs_to :AT 

Song.rb

belongs_to :AT 

Vous n'avez pas à vous soucier de migrations, il suffit de mettre ce code dans les modèles et vous êtes défini. Pour accéder, par exemple, à une chanson avec l'ID 33, vous pouvez utiliser audio.songs.find(33)

+0

Merci, je suppose que les Guides Rails compliquent un peu les choses. – DogNibbler

+0

pas du tout - ça a marché? vous pouvez cocher la réponse ci-dessus afin de laisser la file d'attente "sans réponse". – dax

Questions connexes