查看是否存在与两个外键匹配的数据库行

时间:2011-03-16 21:53:14

标签: ruby-on-rails

我有一个名为alpha的模型。另一个型号beta有alpha和gamma的外键。我想看看对于给定的alpha和gamma匹配是否存在beta,所以我尝试像这样做一个名为'a'的alpha实例和一个名为'g'的gamma实例,但它不起作用,因为它没有'由于某种原因,我知道要查看每个测试版的伽玛值。我可以把它放在一个讨厌的循环中,但这似乎非常不可靠。

a.betas.gamma.includes?(g)

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

那些也行不通。我只是想把所有东西都移到贝塔模型中并使它成为beta的类方法吗?这看起来非常不方便。

1 个答案:

答案 0 :(得分: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)