2009-11-04 5 views
0

J'ai une structure de données similaire à l'image suivante.Association impliquant plusieurs tables

Le tableau A comprend un grand nombre de tableaux C à B; et

Tableau C has_many Tableau E au Tableau D

Afin de rendre le tableau A a une association au tableau E pour que je puisse faire un object_a.has_many_object_e, et d'avoir à respecter les restrictions ci-dessous:

    Ajout
  1. clés étrangères à une table n'est pas autorisé
  2. relation doit être bidirectionnel

Que puis-je faire pour mettre en œuvre ce?

Merci!

alt text http://img25.imageshack.us/img25/763/railsassociation.gif

Répondre

1

Vous pouvez utiliser le plug-in nested_has_many_through qui vous permettra de le faire:

class ModelA 
    has_many :model_bs 
    has_many :model_cs, :through => :modelbs 
    has_many :model_es, :through => :modelcs 
end 

class ModelB 
    belongs_to :model_as 
    belongs_to :model_cs 
end 

class ModelC 
    has_many :model_bs 
    has_many :model_ds 
    has_many :model_as, :through => :modelbs 
    has_many :model_es, :through => :modelcs 
end 

etc.

+0

Exactement ce que j'ai besoin. Merci! – penger

Questions connexes