2010-01-20 4 views
0

Je suis un problème avec une association:Association Problème

Bataillon : soldats has_many

soldats : has_many primaires

que je dois faire ce @bseniorleads = (@ user.battalion .soldiers.find (: all,: conditions => ["seniorleader =?", "Yes"])) puis @seniorspouse = (@ bseniorleads.primaries.find (: all,: conditions => ["relation = ? "," Conjoint "]

Cela me donne une méthode non définie pour les primaires, je suppose que le bseniorleads est un tableau? Fondamentalement, je ne sais pas comment faire cela, mais je dois pouvoir interroger un groupe à partir d'un modèle qui répond à une condition, puis prendre ce résultat et trouver les personnes d'un autre modèle qui leur appartiennent . Des idées?

Merci d'avance.

Répondre

0

Vous devriez être en mesure de faire quelque chose comme ceci (en supposant que besoin la variable d'instance @bseniorleads dans la deuxième requête):

@senior_spouse = @user.battalion.soldiers.find(
    :all, 
    :select => 'primaries.*', 
    :joins => [:primaries], 
    :conditions => ["seniorleader = ? and primaries.relationship = ?", "Yes", "Spouse"] 
) 

Je n'ai pas vérifié, mais je pense que vous devriez obtenir assez proche.

Vous pouvez consulter ces deux guides de rails, ce qui m'a certainement aidé à mieux comprendre les associations et les requêtes ActiveRecord:

+0

Merci beaucoup, j'ai vérifié sur les guides et ils sont d'une aide énorme, je suis si nouveau à la programmation que quelque chose de complexe me jette. Cela a été d'une grande aide pour comprendre ce que je dois faire et comment cela fonctionne. – looloobs