2011-08-12 30 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