2011-11-09 58 views
1

我有一個關於使用Ruby on Rails通過幾個關聯來執行查詢的問題。通過與Ruby on Rails的關聯查詢

這個問題涉及到三個模型的查詢。 (事件,戰鬥,戰士)。該模型的重要部分如下:

  • 事件有多個戰鬥。
  • 每場戰鬥都有兩架戰機:戰鬥機1和戰鬥機2。

我需要寫的是一個函數來檢索具有給定的戰鬥機的所有戰鬥列表。然而,由於我們運行的一些奇怪的本地化事件,這需要通過事件模型來完成。

有沒有簡單的方法來做到這一點?

+0

請提供你的事件,戰鬥,戰士類 – mnelson

+0

你所說的 「怪異本地化的東西」 是什麼意思? – WattsInABox

回答

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 }