关联问题

时间:2010-01-20 22:48:08

标签: ruby-on-rails associations associative-array

我遇到关联问题:

营   :has_many士兵

士兵   :has_many primaries

我需要这样做     @bseniorleads =(@ user.battalion.soldiers.find(:all,:conditions => [“seniorleader =?”,“是”])) 然后     @seniorspouse =(@ bseniorleads.primaries.find(:all,:conditions => [“relationship =?”,“Spouse”]

这给了我一个未定义的原色方法,我假设因为bseniorleads是一个数组?

基本上我不知道如何以正确的方式执行此操作,但我需要能够从一个符合条件的模型中查询一个组,然后获取该结果并从另一个属于它们的模型中查找人员。有什么想法吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

您应该可以执行以下操作(假设您在第二个查询中只需要@bseniorleads实例变量):

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

我还没有检查过,但我认为它应该让你非常接近。

你可能想查看这两个rails指南,这当然有助于我更好地理解ActiveRecord关联和查询: