2011-03-16 56 views
0

我有一个称为alpha的模型。另一个模型beta版具有alpha和gamma的外键。我想看看beta是否存在给定的alpha和gamma匹配,所以我尝试这样做,对于名为'a'的alpha实例和名为'g'的gamma实例,但它不起作用,因为它没有'由于某种原因,我们不知道要看每个测试版的gamma值。我可以把它放在一个讨厌的循环中,但这似乎很不合理。看到数据库行是否存在匹配两个外键

a.betas.gamma.includes?(g) 

我也尝试过各种形式的a.betas.find(:gamma => g)

这些也不起作用。我只是想将所有东西都移到beta模型中,并使其成为beta的一个类方法?这似乎非常不方便。

回答

1

如果我理解正确的:

class Alpha << ActiveRecord::Base 
    has_many :betas 
end 

class Beta << ActiveRecord::Base 
    belongs_to :alpha 
    belongs_to :gamma 
end 

class Gamma << ActiveRecord::Base 
    has_many :betas 
end 

你可以添加has_many :gammas, :through => :beta到Alpha类?如果是,请尝试:

a.gammas.exists?(g) 
+0

D'oh!我知道铁轨想以某种方式帮助我......谢谢! – 2011-03-16 22:28:43

相关问题