2011-03-16 54 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

相關問題