0

我在关联方面遇到问题:

营:has_many 士兵

士兵:has_many 初选

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

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

基本上我不知道如何以正确的方式做到这一点,但我需要能够从一个满足条件的模型中查询一个组,然后获取该结果并从另一个模型中找到属于他们的人。有任何想法吗?

提前致谢。

4

1 回答 1

0

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

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

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

您可能想查看这两个 Rails 指南,这无疑帮助我更好地理解 ActiveRecord 关联和查询:

于 2010-01-21T01:44:09.007 回答