查询与Ruby on Rails的关联

时间:2011-11-09 19:56:20

标签: sql ruby-on-rails ruby activerecord associations

我有一个关于使用Ruby on Rails通过一些关联进行查询的问题。

这个问题涉及查询三个模型。 (事件,战斗,战士)。模型的重要部分如下:

  • 一场比赛有多场比赛。
  • 每场战斗都有两架战斗机:战斗机1和战斗机2。

我需要写的是一个功能,用于检索具有给定战斗机的所有战斗的列表。但是,这需要通过Event模型完成,因为我们已经运行了一些奇怪的本地化。

有一种简单的方法吗?

1 个答案:

答案 0 :(得分:1)

假设

class Event
  has_many :fights
end

class Fight
  has_many :fighters
end

然后你可以这样做:

events = Event.joins(:fights => :fighters).where("fighters.name = 'sally'")
fights = events.inject([]){|a,e| a = a + e.fights; a }