2011-05-11 2 views
1

J'ai un modèle qui déclare plusieurs relations has_many. Existe-t-il des métadonnées disponibles dans ActiveRelation de telle sorte que je puisse parcourir ces relations has_many lorsque je travaille avec ce modèle afin de voir combien de relations has_many le modèle est impliqué, puis accéder au contenu de chacune à partir de là?Rails has_many meta data

Certains pseudo-code (ne fonctionne pas) si elle aide à clarifier ce que mon objectif est:

MyModel.has_many_relationships.each do |relationship| 
    relationship.contents.each do |content| 
     # ... 
    end 
end 

Répondre

2

vous pouvez sûr!

Essayez de chercher "reflect_on_all_associations" dans la documentation de Rails!

reflect_on_all_associations(macro = nil) 

Returns an array of AssociationReflection objects for all the associations in the class. If you only want to reflect on a certain association type, pass in the symbol (:has_many, :has_one, :belongs_to) as the first parameter. 

Example: 

    Account.reflect_on_all_associations    # returns an array of all associations 
    Account.reflect_on_all_associations(:has_many) # returns an array of all has_many associations 
+0

Parfait. Merci Aditya! – inyourcorner

+0

Et si cela finit par s'arranger, vous pouvez peut-être accepter la réponse aussi! À votre santé! :) –