2011-08-12 50 views
0

假設我有兩個表,一個叫殭屍(id,name,墓地),一個叫武器(id,name,strength,zombie_id)。武器:belongs_to殭屍什麼是最簡單的方法來找到具有殭屍名稱'傑克'的武器?在Rails中搜索表連接

謝謝!

回答

0
Weapon.includes(:zombie).where("zombies.name = ?", "jack") 

這將返回一個集合,所以如果你想僅僅是第一,追加.first到該查詢。

所以最後:包括將做一個連接,但也保留在附表中,以便您可以在where子句中引用它。

+0

如果在最後追加.first(),如果找不到任何內容,您是不是會遇到異常? – mkk

+0

.includes()是做什麼的?爲什麼有必要?爲什麼你使用''zombies.name =?「,」jack「'而不是':zombie => {:name =>」jack「}' – joshim5

+0

@mkk不,因爲它會返回一個空數組(' ]'),然後當你調用'.first'時,它會返回'nil'。 – MrDanA